public static SubEntity BuildSubEntity(OccurrencesAdminDetailView parent, int occurrenceId) { _subEntity = parent._viewModel.SubEntities.FirstOrDefault(s => s.EntityName == OccurrencesAdminDetailView._occurrenceManageDatesSubEntity); if (_subEntity == null) _subEntity = new SubEntity() { EntityName = OccurrencesAdminDetailView._occurrenceManageDatesSubEntity, DisplayName = "Manage Dates", CanAddExisting = false, CanCreateNew = true, CanDelete = true }; else _subEntity.Records = new List<SubEntityRecord>(); AddExistingRecords(parent, occurrenceId); AddNewRecordTemplate(parent, occurrenceId); return _subEntity; }
public static void Save(OccurrencesAdminDetailView parent, SubEntity occurrenceDates, int occurrenceId) { try { occurrenceDates.ErrorMessage = string.Empty; //Existing Records Added foreach (var record in occurrenceDates.Records.Where(r => r.Action == RecordActions.New)) { var startDate = parent.GetFieldValue(record.Fields, _day); var startTime = parent.GetFieldValue(record.Fields, _startTime); var endTime = parent.GetFieldValue(record.Fields, _endTime); var d = GetDateTime(startDate, "Date"); d = GetDateTime(d.ToShortDateString(), "Date"); var s = GetDateTime(startTime, "Start Time").TimeOfDay.TotalDays; var e = GetDateTime(endTime, "End Time").TimeOfDay.TotalDays; var requestStartDate = d.AddDays(s); var requestEndDate = d.AddDays(e); var request = new AddOccurrenceDateRequest { StartDate = requestStartDate, EndDate = requestEndDate, EventOccurrenceId = occurrenceId }; parent.ProcessRequest<AddOccurrenceDateResponse>(request); } //Records Deleted foreach (var record in occurrenceDates.Records.Where(r => r.Action == RecordActions.Deleted)) { var request = new DeleteOccurrenceDateRequest { EventOccurrenceDateId = record.Id }; parent.ProcessRequest<DeleteOccurrenceDateResponse>(request); } } catch (Exception ex) { occurrenceDates.ErrorMessage = ex.Message; throw; } }
private static void AddExistingRecords(OccurrencesAdminDetailView parent, int occurrenceId) { var dates = GetEventOccurrenceDates(parent, occurrenceId); foreach (var date in dates) { var record = new SubEntityRecord(); var fields = new List<Field>(); fields.Add(new Field(_id, "Id", FieldTypes.Hidden, date.Id)); fields.Add(new Field(_day, "Day", FieldTypes.Text, date.StartDate.ToShortDateString()) { IsDisabled = true }); fields.Add(new Field(_startTime, "Start Time", FieldTypes.Text, date.StartDate.ToString("hh:mm tt")) { IsDisabled = true }); fields.Add(new Field(_endTime, "End Time", FieldTypes.Text, date.EndDate.ToString("hh:mm tt")) { IsDisabled = true }); record.Id = date.Id; record.Fields = fields; _subEntity.Records.Add(record); } }
private static IEnumerable<EventOccurrenceDateDto> GetEventOccurrenceDates(OccurrencesAdminDetailView parent, int occurrenceId) { var request = new ReadEventOccurrenceRequest { Id = occurrenceId }; return parent.ProcessRequest<ReadEventOccurrenceResponse>(request).EventOccurrence.EventOccurrenceDates; }
private static void AddNewRecordTemplate(OccurrencesAdminDetailView parent, int occurrenceId) { _subEntity.NewRecordTemplate = new SubEntityRecord() { }; _subEntity.NewRecordTemplate.Fields.Add(new Field(_id, "OccurrenceId", FieldTypes.Hidden, occurrenceId)); _subEntity.NewRecordTemplate.Fields.Add(new Field(_day, "Day", FieldTypes.DatePicker, string.Empty, true)); _subEntity.NewRecordTemplate.Fields.Add(new Field(_startTime, "Start Time", FieldTypes.Text, "8:00 AM", true)); _subEntity.NewRecordTemplate.Fields.Add(new Field(_endTime, "End Time", FieldTypes.Text, "5:00 PM", true)); }