private EventsView ConstructEventsView() { EventsView eventsView = new EventsView(); eventsView.Alert = (AlertType)int.Parse(ddlAlert.SelectedItem.Value); eventsView.AllDay = chkAllDay.Checked; eventsView.CreatedBy = UserInfo.UserID; eventsView.CreatedOn = DateTime.Now; eventsView.Details = txtDetails.Text.NoHTML(); eventsView.End = (EndType)int.Parse(ddlEnd.SelectedValue); eventsView.EndDate = DateTime.Parse(txtEndDate.Text); //model.FamilyID = FamilyID; eventsView.FromDay = DateTime.Parse(txtFrom.Text); eventsView.FromTime = txtFromTime.Text; eventsView.FromTimeType = int.Parse(selectFromType.SelectedValue); eventsView.Name = txtName.Text.NoHTML(); eventsView.ProjectID = int.Parse(ddlProjects.SelectedValue); eventsView.ToDay = DateTime.Parse(txtTo.Text); eventsView.ToTime = txtToTime.Text; eventsView.ToTimeType = int.Parse(selectToType.SelectedValue); eventsView.Repeat = (RepeatType)int.Parse(selectRepeat.SelectedValue); eventsView.RoleIDs = ((int)Privates.OnlyMe).ToString(); eventsView.Times = int.Parse(txtTimes.Text); eventsView.UserIds = ""; eventsView.Where = txtWhere.Text.NoHTML(); eventsView.Icon = string.IsNullOrEmpty(Icon.Value) ? 0 : int.Parse(Icon.Value); return(eventsView); }
private void tsmiDetails_Click(object sender, EventArgs e) { if (lvLog.SelectedItems.Count > 0) { EventsView.Show(_eventsViewLink); } }
protected void btnSave_Click(object sender, EventArgs e) { if (ddlProjects.SelectedValue == "") { ShowFailMessageToClient("Please select project."); return; } if (txtName.Text.Trim() == string.Empty) { ShowFailMessageToClient("Please enter title."); return; } EventsView eventModel = ConstructEventsView(); List <EventInviteEntity> inviteList = BuilderInvite(eventModel); List <EventEntity> eventList; //当开始日期和结束日期不是同一天且Repeat为None时,需要处理成Repeat为Every Day、且End为On date,EndDate为选择的结束日期 if (eventModel.ToDay.Date > eventModel.FromDay.Date && eventModel.Repeat == RepeatType.None) { eventModel.Repeat = RepeatType.Every_Day; eventModel.End = EndType.on_date; eventModel.EndDate = eventModel.ToDay; } if (new EventsApplication().AddEvents(eventModel, inviteList, out eventList)) { SendHandler handler = new SendHandler(SendEamil); handler.BeginInvoke(inviteList, eventList, null, null); SendEmail(); Redirect(Request.RawUrl, false, true); } else { ShowFailMessageToClient("Add event Fail."); } }
private void eventEditButton_Click(object sender, RoutedEventArgs e) { this.Hide(); Button b = (Button)e.Source; EventsView p = this._eventsView as EventsView; this._eventsView.EditEventByID(Convert.ToInt32(b.Tag)); }
public void SaveEvent(EventsView model) { //string eventIds; //if (new EventsApplication().AddEvents(model, out eventIds)) //{ // ShowSuccessMessageToClient("The event has been added.", true, true, "350", "50"); //} //else //{ // ShowFailMessageToClient("Add event Fail", "350", "50"); //} }
private EventsView ConstructEventsView() { EventsView eventsView = new EventsView(); eventsView.Alert = (AlertType)int.Parse(ddlAlert.SelectedItem.Value); eventsView.AllDay = chkAllDay.Checked; eventsView.CreatedBy = UserInfo.UserID; eventsView.CreatedOn = DateTime.Now; eventsView.Details = txtDetails.Text.Trim().NoHTML(); eventsView.End = (EndType)int.Parse(ddlEnd.SelectedValue); eventsView.EndDate = DateTime.Parse(txtEndDate.Text); eventsView.FromDay = DateTime.Parse(txtFrom.Text); string tmpFromTime = txtFromTime.Text.Trim().ToLower(); if (tmpFromTime.EndsWith("am") || tmpFromTime.EndsWith("pm")) { eventsView.FromTime = tmpFromTime.Remove(tmpFromTime.Length - 2).Trim(); eventsView.FromTimeType = tmpFromTime.Substring(tmpFromTime.Length - 2) == "am" ? 1 : 2; } else { eventsView.FromTime = txtFromTime.Text; eventsView.FromTimeType = 1; } eventsView.Name = txtName.Text.Trim().NoHTML(); eventsView.ProjectID = int.Parse(ddlProjects.SelectedValue); eventsView.ToDay = DateTime.Parse(txtTo.Text); string tmpToime = txtToTime.Text.Trim().ToLower(); if (tmpToime.EndsWith("am") || tmpToime.EndsWith("pm")) { eventsView.ToTime = tmpToime.Remove(tmpToime.Length - 2).Trim(); eventsView.ToTimeType = tmpToime.Substring(tmpToime.Length - 2) == "am" ? 1 : 2; } else { eventsView.ToTime = txtFromTime.Text; eventsView.ToTimeType = 1; } eventsView.Repeat = (RepeatType)int.Parse(selectRepeat.SelectedValue); eventsView.RoleIDs = ((int)Privates.OnlyMe).ToString(); eventsView.Times = int.Parse(txtTimes.Text); eventsView.UserIds = ""; eventsView.Where = txtWhere.Text.Trim().NoHTML(); eventsView.Icon = string.IsNullOrEmpty(Icon.Value) ? 8 : int.Parse(Icon.Value); eventsView.IsOff = chkOff.Checked; return(eventsView); }
private void mEventPage_Click(object sender, RoutedEventArgs e) { EventsViewModel eventVM = SimpleIoc.Default.GetInstance <EventsViewModel>(); if (eventVM == null) { return; } EventsView view = new EventsView(); view.ShowDialog(); }
/// <summary> /// Create or active existing "Events" view. /// </summary> public void ShowEvents() { foreach (DocumentView doc in documentViews) { if (doc is EventsView) { doc.Activate(); return; } } var view = new EventsView(); view.Show(dockPanel, DockState.Document); view.FormClosing += new FormClosingEventHandler(OnDocumentWindowClosing); documentViews.Add(view); }
private void CreateEventsPage() { var result = SampleUtilities.CreatePage(new Guid(EventsPageId), "Events"); if (result) { SampleUtilities.SetTemplateToPage(new Guid(EventsPageId), new Guid(SamplesTemplateId)); var templateKey = SampleUtilities.GetControlTemplateKey(typeof(MasterView), "Titles, cities, dates"); SampleUtilities.RegisterEventsFrontendView("EventsFrontend", templateKey, typeof(MasterView), "EventsFrontendDateList"); var eventsControl = new EventsView(); eventsControl.MasterViewName = "EventsFrontendDateList"; eventsControl.ControlDefinition.GetDefaultDetailView().TemplateKey = SampleUtilities.GetControlTemplateKey(typeof(Telerik.Sitefinity.Modules.Events.Web.UI.Public.DetailsView), "Full event item"); SampleUtilities.AddControlToPage(new Guid(EventsPageId), eventsControl, "Content", "Events View"); } }
private void SaveInternal(string filename, bool all) { _messagesTimer.Stop(); try { var config = new CsvConfiguration { IgnorePrivateAccessor = true, }; using (var writer = new StreamWriter(filename)) { var csvWriter = new CsvWriter(writer, config); if (SelectedTab == 1) { csvWriter.WriteHeader <AlpcMessageViewModel>(); foreach (var msg in _messages) { if (all || MessagesView.Contains(msg)) { csvWriter.WriteRecord(msg); } } } else { csvWriter.WriteHeader <AlpcEventViewModel>(); foreach (var evt in _events) { if (all || EventsView.Contains(evt)) { csvWriter.WriteRecord(evt); } } } } } catch (Exception ex) { UI.MessageBoxService.ShowMessage(ex.Message, App.Name); } finally { _messagesTimer.Start(); } }
private EventsView ConstructEventsView(EventEntity eventEntity) { EventsView eventsView = new EventsView(); eventsView.Alert = (AlertType)int.Parse(ddlAlert.SelectedItem.Value); eventsView.AllDay = chkAllDay.Checked; eventsView.CreatedBy = UserInfo.UserID; eventsView.CreatedOn = DateTime.Now; eventsView.Details = txtDetails.Text.NoHTML(); //model.FamilyID = FamilyID; eventsView.FromDay = DateTime.Parse(txtFrom.Text); eventsView.FromTime = txtFromTime.Text; eventsView.FromTimeType = int.Parse(selectFromType.SelectedValue); if (!string.IsNullOrEmpty(Icon.Value)) { eventsView.Icon = int.Parse(Icon.Value); } else { eventsView.Icon = eventEntity.Icon; } eventsView.Name = txtName.Text.NoHTML(); eventsView.ToDay = DateTime.Parse(txtTo.Text); eventsView.ToTime = txtToTime.Text; eventsView.ToTimeType = int.Parse(selectToType.SelectedValue); eventsView.RoleIDs = ((int)Privates.OnlyMe).ToString(); eventsView.Where = txtWhere.Text.NoHTML(); eventsView.ID = eventEntity.ID; eventsView.CreatedOn = eventEntity.CreatedOn; eventsView.CreatedBy = eventEntity.CreatedBy; eventsView.UpdatedOn = eventEntity.UpdatedOn; eventsView.GroupID = eventEntity.GroupID; eventsView.HasAlert = eventEntity.HasAlert; eventsView.HasInvite = eventEntity.HasInvite; eventsView.Highlight = eventEntity.Highlight; eventsView.Privacy = eventEntity.Privacy; eventsView.ProjectID = int.Parse(ddlProjects.SelectedValue); return(eventsView); }
public void btnSave_Click(object sender, EventArgs e) { int id = QS("ID", 0); EventEntity eventEntity = new EventsApplication().GetEventInfo(id); EventsView model = ConstructEventsView(eventEntity); if (eventEntity.CreatedBy != UserInfo.UserID) { return; } model.CreatedBy = UserInfo.UserID; //model.FamilyID = familyID; //if (new EventsApplication().UpdateEvent(model, eventEntity)) //{ // imgIcon.ImageUrl = model.IconPath; // ShowSuccessMessageToClient("The change has been saved.", true, true, "350", "50"); //} //else //{ // ShowFailMessageToClient("Edit event fail.", "350", "50"); //} }
public void btnDelete_Click(object sender, EventArgs e) { int id = QS("ID", 0); EventEntity entity = new EventsApplication().GetEventInfo(id); if (entity == null || entity.CreatedBy != UserInfo.UserID) { return; } List <EventInviteEntity> list = GetInviteData(entity, true); if (new EventsApplication().Delete(id, entity.FromDay.Date)) { EventsView eventView = new EventsView(); eventView.Name = entity.Name; eventView.Where = entity.Where; eventView.Details = entity.Details; eventView.ProjectID = entity.ProjectID; eventView.FromDay = entity.FromDay; eventView.FromTime = entity.FromTime; eventView.FromTimeType = entity.FromTimeType; eventView.ToDay = entity.ToDay; eventView.ToTime = entity.ToTime; eventView.ToTimeType = entity.ToTimeType; eventView.AllDay = entity.AllDay; SendEamil(list, eventView, false, true); Redirect(Request.RawUrl, false, true); } else { ShowFailMessageToClient("Delete fail."); } }
/// <summary> /// 修改Event时 /// </summary> public bool UpdateEvent(EventsView entity, EventEntity oldEvent, List <EventInviteEntity> inviteUserList) { bool result = false; entity.UpdatedOn = DateTime.Now; if (!entity.AllDay) { entity.FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , entity.FromDay.Month, entity.FromDay.Day, entity.FromDay.Year, entity.FromTime, entity.FromTimeType == 1 ? "AM" : "PM")); } #if !DEBUG using (TransactionScope tran = new TransactionScope()) #endif { result = mgr.EditEvents(entity); if (entity.FromDay >= DateTime.Now.Date) //当天之前的TimeSheet不做修改 { if (entity.ProjectID.ToString() == Config.HRProjectID) //项目为HR时,需要处理TimeSheets { if (!(oldEvent.IsOff) && entity.IsOff) //如果之前没有选择OFF的ticket,修改后选择了,则添加TimeSheets { result = AddTimeSheetsWithEvent(entity); } if (oldEvent.IsOff && entity.IsOff)//如果两次都选择了OFF的ticket,则修改Timesheet时间 { TimeSheetsEntity timeSheetEntity = tsp.GetByEventId(entity.ID, entity.FromDay.Date); if (entity.AllDay) { timeSheetEntity.Hours = 8; } else { DateTime FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , entity.FromDay.Month, entity.FromDay.Day, entity.FromDay.Year, entity.FromTime, entity.FromTimeType == 1 ? "AM" : "PM")); DateTime EndDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , entity.ToDay.Month, entity.ToDay.Day, entity.ToDay.Year, entity.ToTime, entity.ToTimeType == 1 ? "AM" : "PM")); string Hours = EndDay.Subtract(FromDay).TotalHours.ToString(); timeSheetEntity.Hours = decimal.Parse(Hours); } timeSheetEntity.IsSubmitted = entity.AllDay ? true : false; timeSheetEntity.ModifiedOn = DateTime.Now; result = tsp.UpdateTimeSheet(timeSheetEntity); } if (oldEvent.IsOff && !(entity.IsOff))//如果之前选择了OFF的ticket,修改后没有选择,则删除TimeSheets { result = tsp.DeleteByEventId(entity.ID, entity.FromDay.Date); } } } if (result) { RemoveInviteUser(inviteUserList); inviteUserList.RemoveAll(r => (r.UserID > 0 && (r.OptionStatus == 1 || r.OptionStatus == 3)) || (r.UserID == 0 && r.OptionStatus == 3)); mgr.AddEventInvites(entity, inviteUserList); } #if !DEBUG if (result) { tran.Complete(); return(true); } #endif } return(result); }
public bool AddEvents(EventsView entity, List <EventInviteEntity> inviteList, out List <EventEntity> eventList) { eventList = new List <EventEntity>(); if (entity.Icon == 0) { entity.Icon = 1; } if (!entity.AllDay) { entity.FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , entity.FromDay.Month, entity.FromDay.Day, entity.FromDay.Year, entity.FromTime, entity.FromTimeType == 1 ? "AM" : "PM")); } if (entity.Repeat == RepeatType.None) { EventEntity eventEntity = AddEvent(entity, inviteList); if (eventEntity != null) { eventList.Add(eventEntity); return(true); } else { return(false); } } else { bool result = false; if (entity.End == EndType.After_number_of_times) //重复次数 { #region DateTime tmpFromDay = entity.FromDay; string tmpToTime = entity.ToTime; int tmpToTimeType = entity.ToTimeType; bool isSameDay = entity.FromDay.Date == entity.ToDay.Date;//开始日期和结束日期是否为同一天 #if !DEBUG using (TransactionScope tran = new TransactionScope()) #endif { for (int i = 0; i < entity.Times; i++) { if (entity.Repeat == RepeatType.Every_Month_First_Friday) { entity.FromDay = GetNextDateForRepeat7(tmpFromDay); } else { entity.FromDay = tmpFromDay; } entity.ToDay = tmpFromDay; if (!isSameDay) //如果不是同一天,FromTime和ToTime要做处理 { //若选择的日期为04/14/2015 1:00 pm 到 04/15/2015 6:00 am, //则处理成 4.14号为 04/14/2015 1:00 pm 到 04/14/2015 11:59 pm, // 4.15号为 04/15/2015 12:00 am 到 04/15/2015 6:00 am if (i == entity.Times - 1) { entity.ToTime = tmpToTime; entity.ToTimeType = tmpToTimeType; } else { entity.ToTime = "11:59"; entity.ToTimeType = 2; } if (i > 0) { entity.FromTime = "12:00"; entity.FromTimeType = 1; } } EventEntity eventEntity = AddEvent(entity, inviteList); result = eventEntity != null; eventList.Add(new EventEntity() { Name = entity.Name, Where = entity.Where, Details = entity.Details, ProjectID = entity.ProjectID, FromDay = entity.FromDay, FromTime = entity.FromTime, FromTimeType = entity.FromTimeType, ToDay = entity.ToDay, ToTime = entity.ToTime, ToTimeType = entity.ToTimeType, AllDay = entity.AllDay }); // calc next event date switch (entity.Repeat) { case RepeatType.Every_Day: tmpFromDay = tmpFromDay.AddDays(1); break; case RepeatType.Every_Week: tmpFromDay = tmpFromDay.AddDays(7); break; case RepeatType.Every_two_weeks: tmpFromDay = tmpFromDay.AddDays(2 * 7); break; case RepeatType.Every_Month: case RepeatType.Every_Month_First_Friday: tmpFromDay = tmpFromDay.AddMonths(1); break; case RepeatType.Every_Year: tmpFromDay = tmpFromDay.AddYears(1); break; } if (!result) { return(false); } } #if !DEBUG if (result) { tran.Complete(); } #endif } #endregion } else { #region DateTime tmpFromDay = entity.FromDay; string tmpToTime = entity.ToTime; int tmpToTimeType = entity.ToTimeType; bool isSameDay = entity.FromDay.Date == entity.ToDay.Date;//开始日期和结束日期是否为同一天 int tmpIndex = 0; while (entity.FromDay < entity.EndDate.Date) //截止时间 { #if !DEBUG using (TransactionScope tran = new TransactionScope()) #endif { switch (entity.Repeat) { case RepeatType.Every_Day: entity.FromDay = tmpFromDay.AddDays(tmpIndex); entity.ToDay = entity.FromDay; break; case RepeatType.Every_Week: entity.FromDay = tmpFromDay.AddDays(tmpIndex * 7); entity.ToDay = entity.FromDay; break; case RepeatType.Every_two_weeks: entity.FromDay = tmpFromDay.AddDays(2 * 7 * tmpIndex); entity.ToDay = entity.FromDay; break; case RepeatType.Every_Month: entity.FromDay = tmpFromDay.AddMonths(1 * tmpIndex); entity.ToDay = entity.FromDay; break; case RepeatType.Every_Month_First_Friday: if (tmpIndex == 0) { entity.FromDay = GetNextDateForRepeat7(tmpFromDay); } else { entity.FromDay = GetNextDateForRepeat7(tmpFromDay.AddMonths(1 * tmpIndex)); if (entity.FromDay > entity.EndDate.Date) { continue; } } entity.ToDay = entity.FromDay; break; case RepeatType.Every_Year: entity.FromDay = tmpFromDay.AddYears(1 * tmpIndex); entity.ToDay = entity.FromDay; break; } if (!isSameDay) //如果不是同一天,FromTime和ToTime要做处理 { //若选择的日期为04/14/2015 1:00 pm 到 04/15/2015 6:00 am, //则处理成 4.14号为 04/14/2015 1:00 pm 到 04/14/2015 11:59 pm, // 4.15号为 04/15/2015 12:00 am 到 04/15/2015 6:00 am if (entity.FromDay.Date >= entity.EndDate.Date) { entity.ToTime = tmpToTime; entity.ToTimeType = tmpToTimeType; } else { entity.ToTime = "11:59"; entity.ToTimeType = 2; } if (tmpIndex > 0) { entity.FromTime = "12:00"; entity.FromTimeType = 1; } } EventEntity eventEntity = AddEvent(entity, inviteList); result = eventEntity != null; eventList.Add(eventEntity); if (result == false) { return(false); } tmpIndex++; #if !DEBUG if (result) { tran.Complete(); } #endif } } #endregion } return(result); } }
EventEntity AddEvent(EventsView entity, List <EventInviteEntity> inviteList) { #if !DEBUG using (TransactionScope tran = new TransactionScope()) #endif { if (entity.Repeat != RepeatType.None && entity.End == EndType.on_date && entity.Times <= 1) { var times = entity.Times > -1 ? entity.Times : 0; DateTime start = entity.FromDay; while (start < entity.EndDate) { times++; // calc next event date switch (entity.Repeat) { case RepeatType.Every_Day: start = start.AddDays(1); break; case RepeatType.Every_Week: start = start.AddDays(7); break; case RepeatType.Every_two_weeks: start = start.AddDays(2 * 7); break; case RepeatType.Every_Month: case RepeatType.Every_Month_First_Friday: start = start.AddMonths(1); break; case RepeatType.Every_Year: start = start.AddYears(1); break; } } entity.Times = times; } //entity.CreatedOn = DateTime.Now; entity.UpdatedOn = DateTime.Now; entity.Highlight = false; bool result = false; entity.ID = mgr.AddEvents(entity, entity.Times, entity.IsOff); if (entity.ID > 0) { result = mgr.AddEventInvites(entity, inviteList); } if (entity.IsOff)//如果选择了OFF的ticket,则添加TimeSheets { result = AddTimeSheetsWithEvent(entity); } #if !DEBUG if (result) { tran.Complete(); } #endif if (result) { return(entity); } else { return(null); } } }
private void ViewTimersExecute() { EventsView e = new EventsView(); e.Show(); }
public UpcomingEventsPage() : base() { Content = new EventsView(); }
private List <EventInviteEntity> BuilderInvite(EventsView model) { List <EventInviteEntity> inviteList = new List <EventInviteEntity>(); string projectIds = QF("chkProjectUser"); if (projectIds.Trim() != string.Empty) { List <int> listUserId = new App.ProjectApplication().GetActiveUserIdByProjectId(model.ProjectID); projectIds = projectIds.Trim(); if (projectIds.EndsWith(",")) { projectIds = projectIds.Remove(projectIds.Length - 1); } int tmpId; foreach (string s in projectIds.Split(',')) { if (int.TryParse(s, out tmpId)) { if (listUserId.Contains(tmpId)) { inviteList.Add(new EventInviteEntity() { CreatedID = UserInfo.UserID, EventID = 0, FromDay = DateTime.Now, UserID = tmpId, Email = "", FirstName = "", LastName = "" }); } } } } int otherusers_count = QF("otherusers_count", 0); if (otherusers_count > 0) { string firstName; string lastName; string email; for (int i = 1; i <= otherusers_count; i++) { firstName = QF("txtOtherUserFirst" + i).Trim(); lastName = QF("txtOtherUserLast" + i).Trim(); email = QF("txtOtherUserEmail" + i).Trim(); if (firstName != string.Empty && lastName != string.Empty) { inviteList.Add(new EventInviteEntity() { CreatedID = UserInfo.UserID, LastName = lastName, FirstName = firstName, Email = email, FromDay = DateTime.Now, EventID = 0, UserID = 0 }); } } } return(inviteList); }
public MyEventsPage() : base() { Content = new EventsView(); }
/// <summary> /// 批量保存时 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnSaveAll_Click(object sender, EventArgs e) { if (txtName.Text.Trim() == string.Empty) { ShowFailMessageToClient("Please enter title."); return; } int id = QS("ID", 0); EventEntity eventEntity = new EventsApplication().GetEventInfo(id); EventsView model = ConstructEventsView(eventEntity); if (eventEntity.CreatedBy != UserInfo.UserID) { return; } model.CreatedBy = UserInfo.UserID; List <EventInviteEntity> inviteList = BuilderInvite(model); DataSet updatingEntities = new EventsApplication().GetUpdateAndDeleteEvents(eventEntity.CreatedBy, eventEntity.CreatedOn, eventEntity.FromDay); //如果改变了From ToDay if (model.ToDay > model.FromDay || model.FromDay != eventEntity.FromDay.Date) { //删除从选中的日期以后的相关Event if (new EventsApplication().DeleteAll(eventEntity.CreatedBy, eventEntity.CreatedOn, eventEntity.FromDay.Date)) { //删除Event所对应的TimeSheet DeleteTimeSheets(updatingEntities); } else { ShowFailMessageToClient("Edit event fail."); } List <EventEntity> eventList = new List <EventEntity>(); model.Repeat = RepeatType.Every_Day; model.End = EndType.on_date; model.EndDate = model.ToDay; new EventsApplication().AddEvents(model, inviteList, out eventList); Redirect(Request.RawUrl, false, true); } DataRowCollection dr = null; if (updatingEntities != null) { if (updatingEntities.Tables.Count > 0) { if (updatingEntities.Tables[0].Rows.Count > 0) { dr = updatingEntities.Tables[0].Rows; } } } if (dr != null) //循环更新成相同的Event { foreach (DataRow item in dr) { List <EventInviteEntity> newInvite = inviteList; //每次都传递要修改的EventInvite集合 int eventId = int.Parse(item[0].ToString()); if (eventId != id) { EventEntity newEventEntity = new EventsApplication().GetEventInfo(eventId); model.ID = eventId; model.FromDay = newEventEntity.FromDay; //FromDay和ToDay应保持原来的值 model.ToDay = newEventEntity.ToDay; eventEntity.IsOff = newEventEntity.IsOff; //保持原来的Event的IsOff选项,用于处理Timesheets } if (new EventsApplication().UpdateEvent(model, eventEntity, newInvite)) { if (!model.AllDay) { model.FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , model.FromDay.Month, model.FromDay.Day, model.FromDay.Year, model.FromTime, model.FromTimeType == 1 ? "AM" : "PM")); } SendEamil(inviteList, model, false); } else { ShowFailMessageToClient("Edit event fail."); } } Redirect(Request.RawUrl, false, true); } else { ShowFailMessageToClient("Edit event fail."); } }
public void btnSave_Click(object sender, EventArgs e) { if (txtName.Text.Trim() == string.Empty) { ShowFailMessageToClient("Please enter title."); return; } int id = QS("ID", 0); EventEntity eventEntity = new EventsApplication().GetEventInfo(id); EventsView model = ConstructEventsView(eventEntity); if (eventEntity.CreatedBy != UserInfo.UserID) { return; } model.CreatedBy = UserInfo.UserID; List <EventInviteEntity> inviteList = BuilderInvite(model); DateTime fromDay = model.FromDay; DateTime toDay = model.ToDay; model.ToDay = model.FromDay; if (new EventsApplication().UpdateEvent(model, eventEntity, BuilderInvite(model))) { if (!model.AllDay) { model.FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , model.FromDay.Month, model.FromDay.Day, model.FromDay.Year, model.FromTime, model.FromTimeType == 1 ? "AM" : "PM")); } if (model.FromDay != eventEntity.FromDay) //修改even时,有修改它的fromdate 时,要发邮件通知邀请的人 { SendEamil(inviteList, model, true); } else { SendEamil(inviteList, model, false); } //如果改变了ToDay if (toDay > fromDay) { new EventsApplication().Delete(eventEntity.ID, eventEntity.FromDay); List <EventEntity> eventList = new List <EventEntity>(); model.ToDay = toDay; model.Repeat = RepeatType.Every_Day; model.End = EndType.on_date; model.EndDate = model.ToDay; new EventsApplication().AddEvents(model, inviteList, out eventList); } Redirect(Request.RawUrl, false, true); } else { ShowFailMessageToClient("Edit event fail."); } }
private List <EventInviteEntity> BuilderInvite(EventsView model) { ///获取旧数据 List <EventInviteEntity> oldlist = new App.EventsApplication().GetEventInvites(model.ID); foreach (EventInviteEntity tmpItem in oldlist) { if (tmpItem.UserID > 0) { UsersEntity tmpUser = new App.UserApplication().GetUser(tmpItem.UserID); tmpItem.FirstName = tmpUser.FirstName; tmpItem.LastName = tmpUser.LastName; tmpItem.Email = tmpUser.Email; } } ///获取project users 选中的用户,并区分是新加的,还是原本就有的 List <EventInviteEntity> inviteList = new List <EventInviteEntity>(); string projectUserIds = QF("chkProjectUser"); if (projectUserIds.Trim() != string.Empty) { List <int> listUserId = new App.ProjectApplication().GetActiveUserIdByProjectId(model.ProjectID); projectUserIds = projectUserIds.Trim(); if (projectUserIds.EndsWith(",")) { projectUserIds = projectUserIds.Remove(projectUserIds.Length - 1); } int tmpId; foreach (string s in projectUserIds.Split(',')) { if (int.TryParse(s, out tmpId)) { if (listUserId.Contains(tmpId)) { EventInviteEntity newEntity = new EventInviteEntity() { CreatedID = UserInfo.UserID, EventID = model.ID, FromDay = model.FromDay, UserID = tmpId, Email = "", FirstName = "", LastName = "" }; if (oldlist.Find(r => r.UserID == tmpId) != null) { newEntity.OptionStatus = 1; } else { newEntity.OptionStatus = 2; } inviteList.Add(newEntity); } } } } ///标记被删除的project users foreach (EventInviteEntity item in oldlist.FindAll(r => r.UserID > 0)) { if (inviteList.Find(r => r.UserID == item.UserID) == null) { item.OptionStatus = 3; inviteList.Add(item); } } ///获取other user, 如果有填写 Email 则区分是新加的,还是原有的 int otherusers_count = QF("otherusers_count", 0); if (otherusers_count > 0) { string firstName; string lastName; string email; for (int i = 1; i <= otherusers_count; i++) { firstName = QF("txtOtherUserFirst" + i).Trim(); lastName = QF("txtOtherUserLast" + i).Trim(); email = QF("txtOtherUserEmail" + i).Trim().ToLower(); if (firstName != string.Empty && lastName != string.Empty) { EventInviteEntity newEntity = new EventInviteEntity() { CreatedID = UserInfo.UserID, LastName = lastName, FirstName = firstName, Email = email, FromDay = model.FromDay, EventID = model.ID, UserID = 0 }; if (email != string.Empty) { if (oldlist.Find(r => r.Email.ToLower() == email) != null) { newEntity.OptionStatus = 1; } else { newEntity.OptionStatus = 2; } } else { newEntity.OptionStatus = 2; } inviteList.Add(newEntity); } } ///标记被删除的 other users(只针对有email的) foreach (EventInviteEntity item in oldlist.FindAll(r => r.UserID == 0)) { if (item.Email != string.Empty) { if (inviteList.Find(r => r.Email.ToLower() == item.Email) == null) { item.OptionStatus = 3; inviteList.Add(item); } } } } return(inviteList); }
private EventsView ConstructEventsView(EventEntity eventEntity) { EventsView eventsView = new EventsView(); eventsView.Alert = (AlertType)int.Parse(ddlAlert.SelectedItem.Value); eventsView.AllDay = chkAllDay.Checked; eventsView.CreatedBy = UserInfo.UserID; eventsView.CreatedOn = DateTime.Now; eventsView.Details = txtDetails.Text.Trim().NoHTML(); eventsView.FromDay = DateTime.Parse(txtFrom.Text); string tmpFromTime = txtFromTime.Text.Trim().ToLower(); if (tmpFromTime.EndsWith("am") || tmpFromTime.EndsWith("pm")) { eventsView.FromTime = tmpFromTime.Remove(tmpFromTime.Length - 2).Trim(); eventsView.FromTimeType = tmpFromTime.Substring(tmpFromTime.Length - 2) == "am" ? 1 : 2; } else { eventsView.FromTime = txtFromTime.Text; eventsView.FromTimeType = 1; } if (!string.IsNullOrEmpty(Icon.Value)) { eventsView.Icon = int.Parse(Icon.Value); } else { eventsView.Icon = eventEntity.Icon; } eventsView.Name = txtName.Text.Trim().NoHTML(); eventsView.ToDay = DateTime.Parse(txtTo.Text); string tmpToime = txtToTime.Text.Trim().ToLower(); if (tmpToime.EndsWith("am") || tmpToime.EndsWith("pm")) { eventsView.ToTime = tmpToime.Remove(tmpToime.Length - 2).Trim(); eventsView.ToTimeType = tmpToime.Substring(tmpToime.Length - 2) == "am" ? 1 : 2; } else { eventsView.ToTime = txtFromTime.Text; eventsView.ToTimeType = 1; } eventsView.RoleIDs = ((int)Privates.OnlyMe).ToString(); eventsView.Where = txtWhere.Text.Trim().NoHTML(); eventsView.ID = eventEntity.ID; eventsView.CreatedOn = eventEntity.CreatedOn; eventsView.CreatedBy = eventEntity.CreatedBy; eventsView.UpdatedOn = eventEntity.UpdatedOn; eventsView.GroupID = eventEntity.GroupID; eventsView.HasAlert = eventEntity.HasAlert; eventsView.HasInvite = eventEntity.HasInvite; eventsView.Highlight = eventEntity.Highlight; eventsView.Privacy = eventEntity.Privacy; eventsView.ProjectID = eventEntity.ProjectID; eventsView.IsOff = chkOff.Checked; return(eventsView); }
private void CreateEventsPage() { var result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.EventsPageId), "Events", new Guid(SampleConstants.AboutTheUniversityPageId), "en"); if (result) { SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.EventsPageId), new Guid(SampleConstants.EducationTemplateId), "en"); var headerLayoutControl = new LayoutControl(); List<ColumnDetails> headerLayoutColumns = new List<ColumnDetails>(); ColumnDetails headerLayoutColumn1 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 0), ColumnWidthPercentage = 100, PlaceholderId = "Center" }; headerLayoutColumns.Add(headerLayoutColumn1); headerLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(headerLayoutColumns, string.Empty); headerLayoutControl.ID = "Header"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), headerLayoutControl, "content", "100%", "en"); ContentBlockBase eventsBlock = new ContentBlockBase(); eventsBlock.Html = @"<h2>Events</h2>"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), eventsBlock, "Header_Center", "Content block", "en"); var mainLayoutControl = new LayoutControl(); List<ColumnDetails> mainLayoutColumns = new List<ColumnDetails>(); ColumnDetails mainLayoutColumn1 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 0), ColumnWidthPercentage = 25, PlaceholderId = "Left" }; mainLayoutColumns.Add(mainLayoutColumn1); ColumnDetails mainLayoutColumn2 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 12), ColumnWidthPercentage = 75, PlaceholderId = "Right" }; mainLayoutColumns.Add(mainLayoutColumn2); mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty); mainLayoutControl.ID = "Main"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), mainLayoutControl, "content", "25% + 75%", "en"); var navigationControl = new NavigationControl(); navigationControl.NavigationMode = NavigationModes.VerticalSimple; navigationControl.SelectionMode = PageSelectionModes.CurrentPageSiblings; navigationControl.Skin = "left"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), navigationControl, "Main_Left", "Navigation", "en"); EventsView eventsControl = new EventsView(); eventsControl.DetailViewName = SampleConstants.EducationEventItemDetailView; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), eventsControl, "Main_Right", "Events", "en"); } result = SampleUtilities.CreateLocalizedPage(new Guid(SampleConstants.EventsPageId), "Veranstaltungen", "de"); if (result) { SampleUtilities.SetTemplateToLocalizedPage(new Guid(SampleConstants.EventsPageId), new Guid(SampleConstants.EducationTemplateId), "de"); var headerLayoutControl = new LayoutControl(); List<ColumnDetails> headerLayoutColumns = new List<ColumnDetails>(); ColumnDetails headerLayoutColumn1 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 0), ColumnWidthPercentage = 100, PlaceholderId = "Center" }; headerLayoutColumns.Add(headerLayoutColumn1); headerLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(headerLayoutColumns, string.Empty); headerLayoutControl.ID = "Header"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), headerLayoutControl, "content", "100%", "de"); ContentBlockBase eventsBlock = new ContentBlockBase(); eventsBlock.Html = @"<h2>Veranstaltungen</h2>"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), eventsBlock, "Header_Center", "Content block", "de"); var mainLayoutControl = new LayoutControl(); List<ColumnDetails> mainLayoutColumns = new List<ColumnDetails>(); ColumnDetails mainLayoutColumn1 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 0), ColumnWidthPercentage = 25, PlaceholderId = "Left" }; mainLayoutColumns.Add(mainLayoutColumn1); ColumnDetails mainLayoutColumn2 = new ColumnDetails() { ColumnSpaces = new ColumnSpaces(0, 0, 0, 12), ColumnWidthPercentage = 75, PlaceholderId = "Right" }; mainLayoutColumns.Add(mainLayoutColumn2); mainLayoutControl.Layout = SampleUtilities.GenerateLayoutTemplate(mainLayoutColumns, string.Empty); mainLayoutControl.ID = "Main"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), mainLayoutControl, "content", "25% + 75%", "de"); var navigationControl = new NavigationControl(); navigationControl.NavigationMode = NavigationModes.VerticalSimple; navigationControl.SelectionMode = PageSelectionModes.CurrentPageSiblings; navigationControl.Skin = "left"; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), navigationControl, "Main_Left", "Navigation", "de"); EventsView eventsControl = new EventsView(); eventsControl.DetailViewName = SampleConstants.EducationEventItemDetailView; SampleUtilities.AddControlToLocalizedPage(new Guid(SampleConstants.EventsPageId), eventsControl, "Main_Right", "Events", "de"); } }
protected void SendEamil(List <EventInviteEntity> inviteList, EventsView model, bool isEditDate, bool isDelete = false) { string AddContent = GetEmailExecuter("CreateEvent.txt").Replace("[Host]", UserInfo.FirstAndLastName); string RemoveUserContent = GetEmailExecuter("RemoveUser.txt").Replace("[Host]", UserInfo.FirstAndLastName); string UpdateContent = GetEmailExecuter("EventUpdateTime.txt").Replace("[Host]", UserInfo.FirstAndLastName); string DeleteContent = GetEmailExecuter("DeletedEvent.txt").Replace("[Host]", UserInfo.FirstAndLastName); ProjectsEntity projectEntity = new App.ProjectApplication().Get(model.ProjectID); string time = string.Empty; if (model.AllDay) { time = model.FromDay.ToString("MM/dd/yyyy"); } else { model.FromDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , model.FromDay.Month, model.FromDay.Day, model.FromDay.Year, model.FromTime, model.FromTimeType == 1 ? "AM" : "PM")); model.ToDay = DateTime.Parse(string.Format("{0}/{1}/{2} {3} {4}" , model.ToDay.Month, model.ToDay.Day, model.ToDay.Year, model.ToTime, model.ToTimeType == 1 ? "AM" : "PM")); time = string.Format("{0} ---- {1}", model.FromDay.ToString("MM/dd/yyyy hh:mm tt"), model.ToDay.ToString("MM/dd/yyyy hh:mm tt")); } string subject = string.Empty; string content = string.Empty; foreach (EventInviteEntity item in inviteList) { if (item.UserID == 0) { if (string.IsNullOrEmpty(item.Email) || item.Email.Trim() == string.Empty) { continue; } } else { UsersEntity user = new App.UserApplication().GetUser(item.UserID); item.FirstName = user.FirstName; item.LastName = user.LastName; item.Email = user.Email; } string from = Config.DefaultSendEmail; if (isDelete) { subject = string.Format("[{0}]This event has been canceled. ", model.Name); content = DeleteContent.Replace("[ClientName]", item.FirstName).Replace("[Project]", projectEntity.Title) .Replace("[Title]", model.Name).Replace("[Where]", model.Where) .Replace("[Detail]", model.Details).Replace("[Time]", time); } else { switch (item.OptionStatus) { case 1: //正常 if (isEditDate) { subject = string.Format("[{0}]The time of this event has been changed.", model.Name); content = UpdateContent.Replace("[ClientName]", item.FirstName).Replace("[Project]", projectEntity.Title) .Replace("[Title]", model.Name).Replace("[Where]", model.Where) .Replace("[Detail]", model.Details).Replace("[Time]", time); } else { continue; } break; case 2: //新加的 subject = string.Format("[{0}]You are invited to attend this event.", model.Name); content = AddContent.Replace("[ClientName]", item.FirstName).Replace("[Project]", projectEntity.Title) .Replace("[Title]", model.Name).Replace("[Where]", model.Where) .Replace("[Detail]", model.Details).Replace("[Time]", time); break; case 3: //删除的 subject = string.Format("[{0}]You are not going to attend this event.", model.Name); content = RemoveUserContent.Replace("[ClientName]", item.FirstName).Replace("[Project]", projectEntity.Title) .Replace("[Title]", model.Name).Replace("[Where]", model.Where) .Replace("[Detail]", model.Details).Replace("[Time]", time); break; } } ObjectFactory.GetInstance <IEmailSender>().SendMail(item.Email, Config.DefaultSendEmail, subject, content); SendEmail(isEditDate); } }
public void SetEventsScreen(EventsView p) { this._eventsView = p; }
private void NavigateToEventsCommandExecuted() { WindowContent = new EventsView(); }