This repository was archived by the owner on Dec 4, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 56
Expand file tree
/
Copy pathCalendarEvent.cs
More file actions
95 lines (81 loc) · 3.79 KB
/
CalendarEvent.cs
File metadata and controls
95 lines (81 loc) · 3.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Copyright (c) Microsoft. All rights reserved. Licensed under the MIT license. See full license at the bottom of this file.
using Microsoft.Office365.OutlookServices;
using O365_APIs_Start_ASPNET_MVC.Helpers;
using System;
using System.ComponentModel.DataAnnotations;
using System.Text.RegularExpressions;
namespace O365_APIs_Start_ASPNET_MVC.Models
{
//Represents a Calendar event in an easily consumable form by our views
public class CalendarEvent
{
public string ID;
public string Subject { get; set; }
public string Location { get; set; }
[Required]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM-dd-yyyy HH:mm tt}")]
public DateTimeOffset StartDate { get; set; }
[Required]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM-dd-yyyy HH:mm tt}")]
public DateTimeOffset EndDate { get; set; }
[DataType(DataType.MultilineText)]
public string Body { get; set; }
public string Attendees { get; set; }
// These variables indicate whether an event is the first or last event in the result set.
public bool IsFirstItem { get; set; }
public bool IsLastItem { get; set; }
private CalendarOperations _calenderOperations = new CalendarOperations();
public CalendarEvent(IEvent serverEvent)
{
IsLastItem = false;
IsFirstItem = false;
string bodyContent = string.Empty;
if (serverEvent.Body != null)
bodyContent = serverEvent.Body.Content;
ID = serverEvent.Id;
Subject = serverEvent.Subject;
Location = serverEvent.Location.DisplayName;
StartDate = (DateTimeOffset)serverEvent.Start.Value.ToLocalTime();
EndDate = (DateTimeOffset)serverEvent.End.Value.ToLocalTime();
// Remove HTML tags if the body is returned as HTML.
string bodyType = serverEvent.Body.ContentType.ToString();
if (bodyType == "HTML")
{
bodyContent = Regex.Replace(bodyContent, "<[^>]*>", "");
bodyContent = Regex.Replace(bodyContent, "\n", "");
bodyContent = Regex.Replace(bodyContent, "\r", "");
}
Body = bodyContent;
Attendees = _calenderOperations.BuildAttendeeList(serverEvent.Attendees);
}
}
}
//*********************************************************
//
//O365 APIs Starter Project for ASPNET MVC, https://github.com/OfficeDev/Office-365-APIs-Starter-Project-for-ASPNETMVC
//
//Copyright (c) Microsoft Corporation
//All rights reserved.
//
//MIT License:
//
//Permission is hereby granted, free of charge, to any person obtaining
//a copy of this software and associated documentation files (the
//""Software""), to deal in the Software without restriction, including
//without limitation the rights to use, copy, modify, merge, publish,
//distribute, sublicense, and/or sell copies of the Software, and to
//permit persons to whom the Software is furnished to do so, subject to
//the following conditions:
//
//The above copyright notice and this permission notice shall be
//included in all copies or substantial portions of the Software.
//
//THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT WARRANTY OF ANY KIND,
//EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
//MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
//NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
//LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
//OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
//WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
//*********************************************************