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_Bool Execute(DbConnection Connection, DbTransaction Transaction, P_L5TI_TI_1134 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Bool(); #region Get and update languages var init = ORM_APP_Initialization.Query.Search(Connection, Transaction, new ORM_APP_Initialization.Query() { Tenant_RefID = securityTicket.TenantID, IsDeleted = false, Application_RefID = Parameter.AppID }).SingleOrDefault(); if (init == null) { init = new ORM_APP_Initialization() { Tenant_RefID = securityTicket.TenantID, Application_RefID = Parameter.AppID, APP_InitializationID = Guid.NewGuid(), Initialization_StartedAtDate = DateTime.Now, Version = "1.0" }; } var DBLanguages = cls_Get_All_Languages.Invoke(Connection, Transaction, securityTicket).Result; #endregion #region EComunactionContactType // Get all communication types from db. //var comunactionContactTypes = Enum.GetValues(typeof(EComunactionContactType)); // Just this communication types can be inserted, if we want all, then use line above List <EComunactionContactType> comunactionContactTypes = new List <EComunactionContactType> { EComunactionContactType.Phone, EComunactionContactType.Email, EComunactionContactType.Fax, EComunactionContactType.Mobile }; foreach (EComunactionContactType type in comunactionContactTypes) { P_L2CN_GCTIDfGPMID_1359 parameter = new P_L2CN_GCTIDfGPMID_1359(); parameter.Type = EnumUtils.GetEnumDescription(type); var contactTypeResult = cls_Get_ContantTypeID_for_GlobalPropertyMatchingID.Invoke(Connection, Transaction, parameter, securityTicket).Result; //switch (type) //{ // // Just this communication types can be inserted // case EComunactionContactType.Phone: // { // bool doesStatusExist = ORM_CMN_PER_CommunicationContact_Type.Query.Exists(Connection, Transaction, // new ORM_CMN_PER_CommunicationContact_Type.Query // { // Type = EnumUtils.GetEnumDescription(type), // Tenant_RefID = securityTicket.TenantID, // IsDeleted = false // }); // if (!doesStatusExist) // { // var communicationContactType = new ORM_CMN_PER_CommunicationContact_Type(); // communicationContactType.Type = EnumUtils.GetEnumDescription(type); // communicationContactType.Tenant_RefID = securityTicket.TenantID; // communicationContactType.Save(Connection, Transaction); // } // } // break; // case EComunactionContactType.Email: // { // bool doesStatusExist = ORM_CMN_PER_CommunicationContact_Type.Query.Exists(Connection, Transaction, // new ORM_CMN_PER_CommunicationContact_Type.Query // { // Type = EnumUtils.GetEnumDescription(type), // Tenant_RefID = securityTicket.TenantID, // IsDeleted = false // }); // if (!doesStatusExist) // { // var communicationContactType = new ORM_CMN_PER_CommunicationContact_Type(); // communicationContactType.Type = EnumUtils.GetEnumDescription(type); // communicationContactType.Tenant_RefID = securityTicket.TenantID; // communicationContactType.Save(Connection, Transaction); // } // } // break; // case EComunactionContactType.Fax: // { // bool doesStatusExist = ORM_CMN_PER_CommunicationContact_Type.Query.Exists(Connection, Transaction, // new ORM_CMN_PER_CommunicationContact_Type.Query // { // Type = EnumUtils.GetEnumDescription(type), // Tenant_RefID = securityTicket.TenantID, // IsDeleted = false // }); // if (!doesStatusExist) // { // var communicationContactType = new ORM_CMN_PER_CommunicationContact_Type(); // communicationContactType.Type = EnumUtils.GetEnumDescription(type); // communicationContactType.Tenant_RefID = securityTicket.TenantID; // communicationContactType.Save(Connection, Transaction); // } // } // break; // case EComunactionContactType.Mobile: // { // bool doesStatusExist = ORM_CMN_PER_CommunicationContact_Type.Query.Exists(Connection, Transaction, // new ORM_CMN_PER_CommunicationContact_Type.Query // { // Type = EnumUtils.GetEnumDescription(type), // Tenant_RefID = securityTicket.TenantID, // IsDeleted = false // }); // if (!doesStatusExist) // { // var communicationContactType = new ORM_CMN_PER_CommunicationContact_Type(); // communicationContactType.Type = EnumUtils.GetEnumDescription(type); // communicationContactType.Tenant_RefID = securityTicket.TenantID; // communicationContactType.Save(Connection, Transaction); // } // } // break; //} } #endregion #region AvailabilityTypes var query = new ORM_CMN_CAL_AVA_Availability_Type.Query(); query.IsDeleted = false; query.Tenant_RefID = securityTicket.TenantID; var Availability = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, query); if (Availability.Count == 0) { ORM_CMN_CAL_AVA_Availability_Type Availability_Exceptions = new ORM_CMN_CAL_AVA_Availability_Type(); Availability_Exceptions.CMN_CAL_AVA_Availability_TypeID = Guid.NewGuid(); Availability_Exceptions.IsDefaultAvailabilityType = true; Availability_Exceptions.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(AvailabilityType.Exception); Dict name2 = new Dict("CMN_CAL_AVA_Availability_Type"); for (int i = 0; i < DBLanguages.Count(); i++) { name2.AddEntry(DBLanguages[i].CMN_LanguageID, EnumUtils.GetEnumDescription(AvailabilityType.Exception)); } Availability_Exceptions.AvailabilityTypeName = name2; Availability_Exceptions.Tenant_RefID = securityTicket.TenantID; Availability_Exceptions.Creation_Timestamp = DateTime.Now; Availability_Exceptions.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability_Type Availability_StandardHour = new ORM_CMN_CAL_AVA_Availability_Type(); Availability_StandardHour.CMN_CAL_AVA_Availability_TypeID = Guid.NewGuid(); Availability_StandardHour.IsDefaultAvailabilityType = true; Availability_StandardHour.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(AvailabilityType.Standard); Dict name = new Dict("CMN_CAL_AVA_Availability_Type"); for (int i = 0; i < DBLanguages.Count(); i++) { name.AddEntry(DBLanguages[i].CMN_LanguageID, EnumUtils.GetEnumDescription(AvailabilityType.Standard)); } Availability_StandardHour.AvailabilityTypeName = name; Availability_StandardHour.Tenant_RefID = securityTicket.TenantID; Availability_StandardHour.Creation_Timestamp = DateTime.Now; Availability_StandardHour.Save(Connection, Transaction); ORM_CMN_CAL_AVA_Availability_Type Availability_WebBookingHour = new ORM_CMN_CAL_AVA_Availability_Type(); Availability_WebBookingHour.CMN_CAL_AVA_Availability_TypeID = Guid.NewGuid(); Availability_WebBookingHour.IsDefaultAvailabilityType = true; Availability_WebBookingHour.GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(AvailabilityType.WebBooking); Dict name1 = new Dict("CMN_CAL_AVA_Availability_Type"); for (int i = 0; i < DBLanguages.Count(); i++) { name1.AddEntry(DBLanguages[i].CMN_LanguageID, EnumUtils.GetEnumDescription(AvailabilityType.WebBooking)); } Availability_WebBookingHour.AvailabilityTypeName = name1; Availability_WebBookingHour.Tenant_RefID = securityTicket.TenantID; Availability_WebBookingHour.Creation_Timestamp = DateTime.Now; Availability_WebBookingHour.Save(Connection, Transaction); } #endregion #region PatinetParameters var PatientParameter = cls_Get_all_PatientParameters_for_Tenant.Invoke(Connection, Transaction, securityTicket).Result; #endregion init.Initialiaztion_CompletedAtDate = DateTime.Now; init.IsInitializationComplete = true; init.Save(Connection, Transaction); returnValue.Result = true; return(returnValue); #endregion UserCode }