protected static FR_L6DE_SDaTT_1355 Execute(DbConnection Connection, DbTransaction Transaction, P_L6DE_SDaTT_1355 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_L6DE_SDaTT_1355(); returnValue.Result = new L6DE_SDaTT_1355(); returnValue.Result.BaseData = new L5MHC_SDIwDC_1040(); Parameter.BaseData.UpdateSlots = Parameter.UpdateSlots; var prevOfficeID = Guid.Empty; if (Parameter.BaseData.BaseData.PPS_DEV_Device_InstanceID != Guid.Empty) { ORM_PPS_DEV_Device_Instance_OfficeLocation location = ORM_PPS_DEV_Device_Instance_OfficeLocation.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_OfficeLocation.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, DeviceInstance_RefID = Parameter.BaseData.BaseData.PPS_DEV_Device_InstanceID }).SingleOrDefault(); if (location != null) { prevOfficeID = location.CMN_STR_Office_RefID; } } var instanceID = cls_Save_DeviceInstance_withDeleteCheck.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result; if (Parameter.BaseData.BaseData.IsDelete) { returnValue.Result.BaseData = instanceID; } else { if (Parameter.AvailabilityDate != null) { foreach (var timeItem in Parameter.AvailabilityDate) { var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability_Type.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, GlobalPropertyMatchingID = timeItem.Type }).First(); #region Delete if (timeItem.IsDeleted) { ORM_PPS_DEV_Device_Instance_Availability.Query.SoftDelete(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID, }); } #endregion else { var assignment = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID, DeviceInstance_RefID = instanceID.ID }).SingleOrDefault(); #region Save if (assignment == null) { assignment = new ORM_PPS_DEV_Device_Instance_Availability(); assignment.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignment.CMN_CAL_AVA_Availability_RefID = timeItem.AvailabilityID; assignment.DeviceInstance_RefID = instanceID.ID; assignment.Tenant_RefID = securityTicket.TenantID; assignment.Creation_Timestamp = DateTime.Now; assignment.Save(Connection, Transaction); var availability = new ORM_CMN_CAL_AVA_Availability(); availability.CMN_CAL_AVA_AvailabilityID = assignment.CMN_CAL_AVA_Availability_RefID; availability.Tenant_RefID = securityTicket.TenantID; availability.Creation_Timestamp = DateTime.Now; availability.AvailabilityType_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; availability.IsAvailabilityExclusionItem = timeItem.IsException; availability.Save(Connection, Transaction); Guid EventId = Guid.NewGuid(); var date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = EventId; date.DateName = timeItem.AvailabilityDate_Name; date.DateComment = timeItem.Reason; date.Tenant_RefID = securityTicket.TenantID; date.Creation_Timestamp = DateTime.Now; date.Save(Connection, Transaction); var events = new ORM_CMN_CAL_Event(); events.CMN_CAL_EventID = EventId; events.IsRepetitive = timeItem.IsRepetitive; events.StartTime = timeItem.AvailabilityDate_From; events.EndTime = timeItem.AvailabilityDate_To; events.Tenant_RefID = securityTicket.TenantID; events.Creation_Timestamp = DateTime.Now; events.Repetition_RefID = Guid.NewGuid(); events.Save(Connection, Transaction); if (timeItem.IsRepetitive) { events.Repetition_RefID = Guid.NewGuid(); var repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = events.Repetition_RefID; repetitions.IsMonthly = timeItem.IsMontly; repetitions.IsWeekly = timeItem.IsWeekly; repetitions.IsDaily = timeItem.IsDaily; repetitions.IsYearly = timeItem.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (timeItem.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = timeItem.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = timeItem.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = timeItem.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = timeItem.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = timeItem.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = timeItem.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = timeItem.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (timeItem.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (timeItem.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (timeItem.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } events.Save(Connection, Transaction); } #endregion #region Edit else { var date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = assignment.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); date.DateName = timeItem.AvailabilityDate_Name; date.DateComment = timeItem.Reason; date.Save(Connection, Transaction); var Events = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); Events.IsRepetitive = timeItem.IsRepetitive; Events.IsWholeDayEvent = timeItem.IsWholeDay; Events.StartTime = timeItem.AvailabilityDate_From; Events.EndTime = timeItem.AvailabilityDate_To; var repetitions = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = Events.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetitions != null) { repetitions.IsDeleted = true; repetitions.Save(Connection, Transaction); if (repetitions.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Repetition_RefID = repetitions.CMN_CAL_RepetitionID, }); } if (repetitions.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Monthly.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); } if (repetitions.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Daily.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); } if (repetitions.IsYearly) { ORM_CMN_CAL_RepetitionPatterns_Yearly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Yearly.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Repetition_RefID = repetitions.CMN_CAL_RepetitionID }); } } if (timeItem.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = timeItem.IsMontly; repetitions.IsWeekly = timeItem.IsWeekly; repetitions.IsDaily = timeItem.IsDaily; repetitions.IsYearly = timeItem.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (timeItem.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.HasRepeatingOn_Fridays = timeItem.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = timeItem.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = timeItem.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = timeItem.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = timeItem.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = timeItem.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = timeItem.HasRepeatingOn_Wednesdays; repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.Save(Connection, Transaction); } if (timeItem.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (timeItem.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (timeItem.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion } } returnValue.Result.BaseData = instanceID; } } if (Parameter.UpdateSlots) { if (!Parameter.BaseData.BaseData.IsDelete) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = Parameter.BaseData.BaseData.OfficeID }, securityTicket); if (prevOfficeID != Guid.Empty && prevOfficeID != Parameter.BaseData.BaseData.OfficeID) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = prevOfficeID }, securityTicket); } } else { if (prevOfficeID != Guid.Empty) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = prevOfficeID }, securityTicket); } } } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5DO_SDaSA_1634 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); foreach (var item in Parameter.AvailabilityDate) { #region Delete if (item.IsDeleted) { ORM_CMN_BPT_BusinessParticipant_Availability.Query.SoftDelete(Connection, Transaction, new ORM_CMN_BPT_BusinessParticipant_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID }); } #endregion else { var officeAvailabilityQuery = new ORM_CMN_BPT_BusinessParticipant_Availability.Query(); officeAvailabilityQuery.Tenant_RefID = securityTicket.TenantID; officeAvailabilityQuery.IsDeleted = false; officeAvailabilityQuery.CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID; var bpAvailability = ORM_CMN_BPT_BusinessParticipant_Availability.Query.Search(Connection, Transaction, officeAvailabilityQuery).SingleOrDefault(); #region Save if (bpAvailability == null) { bpAvailability = new ORM_CMN_BPT_BusinessParticipant_Availability(); bpAvailability.CMN_BPT_BusinessParticipant_AvailabilityID = item.OfficeAvailabilityID; bpAvailability.BusinessParticipant_RefID = Parameter.CMN_BPT_BusinessParticipantID; bpAvailability.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); bpAvailability.Tenant_RefID = securityTicket.TenantID; bpAvailability.Creation_Timestamp = DateTime.Now; bpAvailability.Save(Connection, Transaction); var availability = new ORM_CMN_CAL_AVA_Availability(); availability.CMN_CAL_AVA_AvailabilityID = bpAvailability.CMN_CAL_AVA_Availability_RefID; availability.Tenant_RefID = securityTicket.TenantID; availability.Creation_Timestamp = DateTime.Now; var availabilityTypeQuery = new ORM_CMN_CAL_AVA_Availability_Type.Query(); availabilityTypeQuery.IsDeleted = false; availabilityTypeQuery.Tenant_RefID = securityTicket.TenantID; availabilityTypeQuery.GlobalPropertyMatchingID = item.Type; var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, availabilityTypeQuery).First(); availability.Office_RefID = item.OfficeID; availability.AvailabilityType_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; availability.IsAvailabilityExclusionItem = item.IsException; availability.Save(Connection, Transaction); Guid EventId = Guid.NewGuid(); var date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = EventId; date.DateName = item.AvailabilityDate_Name; date.DateComment = item.Reason; date.Tenant_RefID = securityTicket.TenantID; date.Creation_Timestamp = DateTime.Now; date.Save(Connection, Transaction); var events = new ORM_CMN_CAL_Event(); events.CMN_CAL_EventID = EventId; events.IsRepetitive = item.IsRepetitive; events.StartTime = item.AvailabilityDate_From; events.EndTime = item.AvailabilityDate_To; events.Tenant_RefID = securityTicket.TenantID; events.Creation_Timestamp = DateTime.Now; events.IsWholeDayEvent = item.IsWholeDay; if (item.IsRepetitive) { events.Repetition_RefID = Guid.NewGuid(); var repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = item.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = item.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = item.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = item.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = item.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = item.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = item.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } events.Save(Connection, Transaction); } #endregion #region Edit else { bpAvailability.Save(Connection, Transaction); var eventsQuery = new ORM_CMN_CAL_Event.Query(); eventsQuery.IsDeleted = false; eventsQuery.Tenant_RefID = securityTicket.TenantID; var availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, CMN_CAL_AVA_AvailabilityID = bpAvailability.CMN_CAL_AVA_Availability_RefID }).Single(); availability.Office_RefID = item.OfficeID; availability.Save(Connection, Transaction); var dateQuery = new ORM_CMN_CAL_AVA_Date.Query(); dateQuery.IsDeleted = false; dateQuery.Tenant_RefID = securityTicket.TenantID; dateQuery.Availability_RefID = bpAvailability.CMN_CAL_AVA_Availability_RefID; var date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, dateQuery).Single(); date.DateName = item.AvailabilityDate_Name; date.DateComment = item.Reason; date.Save(Connection, Transaction); eventsQuery.CMN_CAL_EventID = date.CMN_CAL_Event_RefID; var Events = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, eventsQuery).Single(); Events.IsRepetitive = item.IsRepetitive; Events.IsWholeDayEvent = item.IsWholeDay; Events.StartTime = item.AvailabilityDate_From; Events.EndTime = item.AvailabilityDate_To; #region delete old repetation if exists var repetitionsQuery = new ORM_CMN_CAL_Repetition.Query(); repetitionsQuery.IsDeleted = false; repetitionsQuery.Tenant_RefID = securityTicket.TenantID; repetitionsQuery.CMN_CAL_RepetitionID = Events.Repetition_RefID; var repetitions = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, repetitionsQuery).SingleOrDefault(); if (repetitions != null) { repetitions.IsDeleted = true; repetitions.Save(Connection, Transaction); if (repetitions.IsWeekly) { ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, Repetition_RefID = repetitions.CMN_CAL_RepetitionID, }); } if (repetitions.IsMonthly) { ORM_CMN_CAL_RepetitionPatterns_Monthly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Monthly.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }); } if (repetitions.IsDaily) { ORM_CMN_CAL_RepetitionPatterns_Daily.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Daily.Query() { Repetition_RefID = repetitions.CMN_CAL_RepetitionID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); } if (repetitions.IsYearly) { ORM_CMN_CAL_RepetitionPatterns_Yearly.Query.SoftDelete(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Yearly.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Repetition_RefID = repetitions.CMN_CAL_RepetitionID }); } } #endregion if (item.IsRepetitive) { Events.Repetition_RefID = Guid.NewGuid(); repetitions = new ORM_CMN_CAL_Repetition(); repetitions.CMN_CAL_RepetitionID = Events.Repetition_RefID; repetitions.IsMonthly = item.IsMontly; repetitions.IsWeekly = item.IsWeekly; repetitions.IsDaily = item.IsDaily; repetitions.IsYearly = item.IsYearly; repetitions.Tenant_RefID = securityTicket.TenantID; repetitions.Creation_Timestamp = DateTime.Now; repetitions.Save(Connection, Transaction); if (item.IsWeekly) { var repetitionWeekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); repetitionWeekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); repetitionWeekly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionWeekly.Tenant_RefID = securityTicket.TenantID; repetitionWeekly.Creation_Timestamp = DateTime.Now; repetitionWeekly.HasRepeatingOn_Fridays = item.HasRepeatingOn_Fridays; repetitionWeekly.HasRepeatingOn_Mondays = item.HasRepeatingOn_Mondays; repetitionWeekly.HasRepeatingOn_Saturdays = item.HasRepeatingOn_Saturdays; repetitionWeekly.HasRepeatingOn_Sundays = item.HasRepeatingOn_Sundays; repetitionWeekly.HasRepeatingOn_Thursdays = item.HasRepeatingOn_Thursdays; repetitionWeekly.HasRepeatingOn_Tuesdays = item.HasRepeatingOn_Tuesdays; repetitionWeekly.HasRepeatingOn_Wednesdays = item.HasRepeatingOn_Wednesdays; repetitionWeekly.Save(Connection, Transaction); } if (item.IsMontly) { var repetitionMontly = new ORM_CMN_CAL_RepetitionPatterns_Monthly(); repetitionMontly.CMN_CAL_RepetitionPattern_MonthlyID = Guid.NewGuid(); repetitionMontly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionMontly.Tenant_RefID = securityTicket.TenantID; repetitionMontly.Creation_Timestamp = DateTime.Now; repetitionMontly.Save(Connection, Transaction); } if (item.IsDaily) { var repetitionDaily = new ORM_CMN_CAL_RepetitionPatterns_Daily(); repetitionDaily.CMN_CAL_RepetitionPattern_DailyID = Guid.NewGuid(); repetitionDaily.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionDaily.Tenant_RefID = securityTicket.TenantID; repetitionDaily.Creation_Timestamp = DateTime.Now; repetitionDaily.Save(Connection, Transaction); } if (item.IsYearly) { var repetitionYearly = new ORM_CMN_CAL_RepetitionPatterns_Yearly(); repetitionYearly.CMN_CAL_RepetitionPattern_YearlyID = Guid.NewGuid(); repetitionYearly.Repetition_RefID = repetitions.CMN_CAL_RepetitionID; repetitionYearly.Tenant_RefID = securityTicket.TenantID; repetitionYearly.Creation_Timestamp = DateTime.Now; repetitionYearly.Save(Connection, Transaction); } } Events.Save(Connection, Transaction); } #endregion } } var emp = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee.Query { BusinessParticipant_RefID = Parameter.CMN_BPT_BusinessParticipantID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).FirstOrDefault(); var oficeToDoctorList = ORM_CMN_BPT_EMP_Employee_2_Office.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee_2_Office.Query { CMN_BPT_EMP_Employee_RefID = emp.CMN_BPT_EMP_EmployeeID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); if (Parameter.UpdateSlots) { foreach (var o2d in oficeToDoctorList) { cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = o2d.CMN_STR_Office_RefID }, securityTicket); } } return(returnValue); #endregion UserCode }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5MHC_SDwTT_1419 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); var instanceID = cls_Save_DeviceInstance.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result; if (Parameter.Availabilities != null) { foreach (var availability in Parameter.Availabilities) { if (!availability.IsDelete) { ORM_PPS_DEV_Device_Instance_Availability assignemnt; if (availability.CMN_CAL_AVA_AvailabilityID != Guid.Empty) { assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); } else { assignemnt = new ORM_PPS_DEV_Device_Instance_Availability(); assignemnt.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignemnt.DeviceInstance_RefID = instanceID; assignemnt.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); assignemnt.Tenant_RefID = securityTicket.TenantID; assignemnt.Save(Connection, Transaction); } ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (ORM_CMN_CAL_AVA_Availability == null) { ORM_CMN_CAL_AVA_Availability = new ORM_CMN_CAL_AVA_Availability(); ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID; ORM_CMN_CAL_AVA_Availability.Tenant_RefID = securityTicket.TenantID; } ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (date == null) { date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Tenant_RefID = securityTicket.TenantID; date.Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = Guid.NewGuid(); } date.DateName = availability.Name; date.Save(Connection, Transaction); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (eventItem == null) { eventItem = new ORM_CMN_CAL_Event(); eventItem.CMN_CAL_EventID = Guid.NewGuid(); eventItem.Tenant_RefID = securityTicket.TenantID; eventItem.IsRepetitive = true; eventItem.Repetition_RefID = Guid.NewGuid(); } eventItem.IsWholeDayEvent = availability.IsWholeDay; eventItem.StartTime = availability.StartTime; eventItem.EndTime = availability.EndTime; eventItem.Save(Connection, Transaction); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { repetition = new ORM_CMN_CAL_Repetition(); repetition.CMN_CAL_RepetitionID = Guid.NewGuid(); repetition.Tenant_RefID = securityTicket.TenantID; repetition.CMN_CAL_RepetitionID = eventItem.Repetition_RefID; repetition.IsWeekly = true; repetition.Save(Connection, Transaction); } ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { weekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); weekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); weekly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; weekly.Tenant_RefID = securityTicket.TenantID; weekly.Save(Connection, Transaction); } } else { var assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = availability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); assignemnt.IsDeleted = true; assignemnt.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability.IsDeleted = true; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); date.IsDeleted = true; date.Save(Connection, Transaction); eventItem.IsDeleted = true; eventItem.Save(Connection, Transaction); repetition.IsDeleted = true; repetition.Save(Connection, Transaction); weekly.IsDeleted = true; weekly.Save(Connection, Transaction); } } } if (Parameter.Unavailabilities != null) { foreach (var unavailability in Parameter.Unavailabilities) { if (!unavailability.IsDelete) { ORM_PPS_DEV_Device_Instance_Availability assignemnt; if (unavailability.CMN_CAL_AVA_AvailabilityID != Guid.Empty) { assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = unavailability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); } else { assignemnt = new ORM_PPS_DEV_Device_Instance_Availability(); assignemnt.PPS_DEV_Device_Instance_AvailabilityID = Guid.NewGuid(); assignemnt.DeviceInstance_RefID = instanceID; assignemnt.CMN_CAL_AVA_Availability_RefID = Guid.NewGuid(); assignemnt.Tenant_RefID = securityTicket.TenantID; assignemnt.Save(Connection, Transaction); } ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, IsAvailabilityExclusionItem = true }).SingleOrDefault(); if (ORM_CMN_CAL_AVA_Availability == null) { ORM_CMN_CAL_AVA_Availability = new ORM_CMN_CAL_AVA_Availability(); ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID; ORM_CMN_CAL_AVA_Availability.Tenant_RefID = securityTicket.TenantID; ORM_CMN_CAL_AVA_Availability.IsAvailabilityExclusionItem = true; } ORM_CMN_CAL_AVA_Availability.AvailabilityComment = unavailability.Reason; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID, }).SingleOrDefault(); if (date == null) { date = new ORM_CMN_CAL_AVA_Date(); date.CMN_CAL_AVA_DateID = Guid.NewGuid(); date.Tenant_RefID = securityTicket.TenantID; date.Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID; date.CMN_CAL_Event_RefID = Guid.NewGuid(); date.Save(Connection, Transaction); } ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (eventItem == null) { eventItem = new ORM_CMN_CAL_Event(); eventItem.CMN_CAL_EventID = Guid.NewGuid(); eventItem.Tenant_RefID = securityTicket.TenantID; eventItem.IsRepetitive = true; eventItem.Repetition_RefID = Guid.NewGuid(); } eventItem.IsWholeDayEvent = unavailability.IsWholeDay; eventItem.StartTime = unavailability.StartTime; eventItem.EndTime = unavailability.EndTime; eventItem.Save(Connection, Transaction); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { repetition = new ORM_CMN_CAL_Repetition(); repetition.CMN_CAL_RepetitionID = Guid.NewGuid(); repetition.Tenant_RefID = securityTicket.TenantID; repetition.CMN_CAL_RepetitionID = eventItem.Repetition_RefID; repetition.IsWeekly = true; repetition.Save(Connection, Transaction); } ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).SingleOrDefault(); if (repetition == null) { weekly = new ORM_CMN_CAL_RepetitionPatterns_Weekly(); weekly.CMN_CAL_RepetitionPattern_WeeklyID = Guid.NewGuid(); weekly.Repetition_RefID = repetition.CMN_CAL_RepetitionID; weekly.Tenant_RefID = securityTicket.TenantID; weekly.Save(Connection, Transaction); } } else { var assignemnt = ORM_PPS_DEV_Device_Instance_Availability.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance_Availability.Query() { CMN_CAL_AVA_Availability_RefID = unavailability.CMN_CAL_AVA_AvailabilityID, DeviceInstance_RefID = instanceID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Availability ORM_CMN_CAL_AVA_Availability = ORM_CMN_CAL_AVA_Availability.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability.Query() { CMN_CAL_AVA_AvailabilityID = assignemnt.CMN_CAL_AVA_Availability_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_AVA_Date date = ORM_CMN_CAL_AVA_Date.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Date.Query() { Availability_RefID = ORM_CMN_CAL_AVA_Availability.CMN_CAL_AVA_AvailabilityID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); ORM_CMN_CAL_Event eventItem = ORM_CMN_CAL_Event.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Event.Query() { CMN_CAL_EventID = date.CMN_CAL_Event_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_Repetition repetition = ORM_CMN_CAL_Repetition.Query.Search(Connection, Transaction, new ORM_CMN_CAL_Repetition.Query() { CMN_CAL_RepetitionID = eventItem.Repetition_RefID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); ORM_CMN_CAL_RepetitionPatterns_Weekly weekly = ORM_CMN_CAL_RepetitionPatterns_Weekly.Query.Search(Connection, Transaction, new ORM_CMN_CAL_RepetitionPatterns_Weekly.Query() { Repetition_RefID = repetition.CMN_CAL_RepetitionID, Tenant_RefID = securityTicket.TenantID, IsDeleted = false }).Single(); assignemnt.IsDeleted = true; assignemnt.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability.IsDeleted = true; ORM_CMN_CAL_AVA_Availability.Save(Connection, Transaction); date.IsDeleted = true; date.Save(Connection, Transaction); eventItem.IsDeleted = true; eventItem.Save(Connection, Transaction); repetition.IsDeleted = true; repetition.Save(Connection, Transaction); weekly.IsDeleted = true; weekly.Save(Connection, Transaction); } } } return(returnValue); #endregion UserCode }