///<summary> /// Method Invocation of wrapper classes ///<summary> protected static FR_Guid Invoke(DbConnection Connection, DbTransaction Transaction, string ConnectionString, P_L5TA_STT_1548 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { bool cleanupConnection = Connection == null; bool cleanupTransaction = Transaction == null; FR_Guid functionReturn = new FR_Guid(); try { if (cleanupConnection == true) { Connection = CSV2Core_MySQL.Support.DBSQLSupport.CreateConnection(ConnectionString); Connection.Open(); } if (cleanupTransaction == true) { Transaction = Connection.BeginTransaction(); } functionReturn = Execute(Connection, Transaction, Parameter, securityTicket); #region Cleanup Connection/Transaction //Commit the transaction if (cleanupTransaction == true) { Transaction.Commit(); } //Close the connection if (cleanupConnection == true) { Connection.Close(); } #endregion } catch (Exception ex) { try { if (cleanupTransaction == true && Transaction != null) { Transaction.Rollback(); } } catch { } try { if (cleanupConnection == true && Connection != null) { Connection.Close(); } } catch { } throw new Exception("Exception occured in method cls_Save_TaskTemplate", ex); } return(functionReturn); }
///<summary> /// Opens the connection/transaction for the given connectionString, and closes them when complete ///<summary> public static FR_Guid Invoke(string ConnectionString, P_L5TA_STT_1548 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(null, null, ConnectionString, Parameter, securityTicket)); }
///<summary> /// Invokes the method for the given Connection, and Transaction, leaving them open/not commited if no exceptions occured ///<summary> public static FR_Guid Invoke(DbConnection Connection, DbTransaction Transaction, P_L5TA_STT_1548 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { return(Invoke(Connection, Transaction, null, Parameter, securityTicket)); }
protected static FR_Guid Execute(DbConnection Connection, DbTransaction Transaction, P_L5TA_STT_1548 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null) { #region UserCode var returnValue = new FR_Guid(); //Put your code here #region Save if (Parameter.PPS_TSK_Task_TemplateID == Guid.Empty) { //=====================New Task===================== ORM_PPS_TSK_Task_Template task = new ORM_PPS_TSK_Task_Template(); task.PPS_TSK_Task_TemplateID = Guid.NewGuid(); task.TaskTemplateName = Parameter.TaskTemplateName; task.Duration_EstimatedMax_in_sec = Parameter.Duration_EstimatedMax_in_sec; task.Duration_Recommended_in_sec = Parameter.Duration_Recommended_in_sec; task.IsDeleted = false; task.Tenant_RefID = securityTicket.TenantID; //=====================Excluded availability types===================== if (!Parameter.IsWebBooking) { var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability_Type.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(AvailabilityType.WebBooking) }).First(); ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType excludedTypes = new ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType(); excludedTypes.PPS_TSK_Task_Template_ExcludedAvailabilityTypeID = Guid.NewGuid(); excludedTypes.PPS_TSK_Task_Template_RefID = task.PPS_TSK_Task_TemplateID; excludedTypes.Excluded_Availability_Type_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; excludedTypes.IsDeleted = false; excludedTypes.Tenant_RefID = securityTicket.TenantID; excludedTypes.Save(Connection, Transaction); } //=====================New Staff===================== if (Parameter.Staff != null && Parameter.Staff.Count() > 0) { foreach (var staffParam in Parameter.Staff) { if (staffParam.IsDeleted == false) { ORM_PPS_TSK_Task_RequiredStaff staff = new ORM_PPS_TSK_Task_RequiredStaff(); staff.PPS_TSK_Task_RequiredStaffID = Guid.NewGuid(); staff.TaskTemplate_RefID = task.PPS_TSK_Task_TemplateID; staff.StaffQuantity = staffParam.StaffQuantity; staff.IsDeleted = false; if (staffParam.Required_Employee_RefID != Guid.Empty) //required employee { staff.Required_Employee_RefID = staffParam.Required_Employee_RefID; } staff.Tenant_RefID = securityTicket.TenantID; staff.Save(Connection, Transaction); //=====================New Profession===================== if (staffParam.CMN_STR_Profession_RefID != Guid.Empty) { ORM_PPS_TSK_Task_RequiredStaff_Profession profession = new ORM_PPS_TSK_Task_RequiredStaff_Profession(); profession.PPS_TSK_Task_RequiredStaff_ProfessionID = Guid.NewGuid(); profession.RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID; profession.CMN_STR_Profession_RefID = staffParam.CMN_STR_Profession_RefID; profession.IsDeleted = false; profession.Tenant_RefID = securityTicket.TenantID; profession.Save(Connection, Transaction); } //=====================New Skill===================== if (staffParam.StaffSkill != null && staffParam.StaffSkill.Count() > 0) { foreach (var skillParam in staffParam.StaffSkill) { if (skillParam.IsDeleted == false) { ORM_PPS_TSK_Task_RequiredStaff_Skill skill = new ORM_PPS_TSK_Task_RequiredStaff_Skill(); skill.PPS_TSK_Task_RequiredStaff_SkillID = Guid.NewGuid(); skill.RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID; skill.CMN_STR_Skill_RefID = skillParam.CMN_STR_Skill_RefID; skill.IsDeleted = false; skill.Tenant_RefID = securityTicket.TenantID; skill.Save(Connection, Transaction); } } } } } } //=====================New Devices===================== if (Parameter.Devices != null && Parameter.Devices.Count() > 0) { foreach (var deviceParam in Parameter.Devices) { if (deviceParam.IsDeleted == false) { ORM_PPS_TSK_Task_Template_RequiredDevice device = new ORM_PPS_TSK_Task_Template_RequiredDevice(); device.PPS_TSK_Task_Template_RequiredDeviceID = Guid.NewGuid(); device.TaskTemplate_RefID = task.PPS_TSK_Task_TemplateID; device.DEV_Device_RefID = deviceParam.DEV_Device_RefID; device.RequiredQuantity = deviceParam.RequiredQuantity; device.IsDeleted = false; device.Tenant_RefID = securityTicket.TenantID; device.Save(Connection, Transaction); } } } task.Save(Connection, Transaction); returnValue.Result = task.PPS_TSK_Task_TemplateID; } #endregion //=====================Edit or Delete===================== else { var task = ORM_PPS_TSK_Task_Template.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template.Query { PPS_TSK_Task_TemplateID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).Single(); #region Edit if (Parameter.IsDeleted == false) { task.TaskTemplateName = Parameter.TaskTemplateName; task.Duration_EstimatedMax_in_sec = Parameter.Duration_EstimatedMax_in_sec; task.Duration_Recommended_in_sec = Parameter.Duration_Recommended_in_sec; //=====================Edit excluded availability types===================== var existingAvailabilityType = ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, PPS_TSK_Task_Template_RefID = task.PPS_TSK_Task_TemplateID }).FirstOrDefault(); if (!Parameter.IsWebBooking) { if (existingAvailabilityType == null) { var availabilityType = ORM_CMN_CAL_AVA_Availability_Type.Query.Search(Connection, Transaction, new ORM_CMN_CAL_AVA_Availability_Type.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, GlobalPropertyMatchingID = EnumUtils.GetEnumDescription(AvailabilityType.WebBooking) }).First(); ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType excludedTypes = new ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType(); excludedTypes.PPS_TSK_Task_Template_ExcludedAvailabilityTypeID = Guid.NewGuid(); excludedTypes.PPS_TSK_Task_Template_RefID = task.PPS_TSK_Task_TemplateID; excludedTypes.Excluded_Availability_Type_RefID = availabilityType.CMN_CAL_AVA_Availability_TypeID; excludedTypes.IsDeleted = false; excludedTypes.Tenant_RefID = securityTicket.TenantID; excludedTypes.Save(Connection, Transaction); } } else { if (existingAvailabilityType != null) { existingAvailabilityType.IsDeleted = true; existingAvailabilityType.Save(Connection, Transaction); } } //=====================Edit Staff===================== if (Parameter.Staff != null) { foreach (var staffParam in Parameter.Staff) { var existingStaff = ORM_PPS_TSK_Task_RequiredStaff.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff.Query { PPS_TSK_Task_RequiredStaffID = staffParam.PPS_TSK_Task_RequiredStaffID, TaskTemplate_RefID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); //=====================New Staff===================== if (existingStaff == null && !staffParam.IsDeleted) { ORM_PPS_TSK_Task_RequiredStaff staff = new ORM_PPS_TSK_Task_RequiredStaff(); staff.PPS_TSK_Task_RequiredStaffID = Guid.NewGuid(); staff.TaskTemplate_RefID = task.PPS_TSK_Task_TemplateID; staff.StaffQuantity = staffParam.StaffQuantity; staff.IsDeleted = false; if (staffParam.Required_Employee_RefID != Guid.Empty) //required employee { staff.Required_Employee_RefID = staffParam.Required_Employee_RefID; } staff.Tenant_RefID = securityTicket.TenantID; staff.Save(Connection, Transaction); //=====================New Profession===================== if (staffParam.CMN_STR_Profession_RefID != Guid.Empty) { ORM_PPS_TSK_Task_RequiredStaff_Profession profession = new ORM_PPS_TSK_Task_RequiredStaff_Profession(); profession.PPS_TSK_Task_RequiredStaff_ProfessionID = Guid.NewGuid(); profession.RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID; profession.CMN_STR_Profession_RefID = staffParam.CMN_STR_Profession_RefID; profession.IsDeleted = false; profession.Tenant_RefID = securityTicket.TenantID; profession.Save(Connection, Transaction); } //=====================New Skill===================== if (staffParam.StaffSkill != null && staffParam.StaffSkill.Count() > 0) { foreach (var skillParam in staffParam.StaffSkill) { if (skillParam.IsDeleted == false) { ORM_PPS_TSK_Task_RequiredStaff_Skill skill = new ORM_PPS_TSK_Task_RequiredStaff_Skill(); skill.PPS_TSK_Task_RequiredStaff_SkillID = Guid.NewGuid(); skill.RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID; skill.CMN_STR_Skill_RefID = skillParam.CMN_STR_Skill_RefID; skill.IsDeleted = false; skill.Tenant_RefID = securityTicket.TenantID; skill.Save(Connection, Transaction); } } } } //=====================Delete Staff which exists in the database but not in the parameter===================== else if (existingStaff != null && staffParam.IsDeleted) { ORM_PPS_TSK_Task_RequiredStaff_Skill.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Skill.Query { RequiredStaff_RefID = existingStaff.PPS_TSK_Task_RequiredStaffID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); ORM_PPS_TSK_Task_RequiredStaff_Profession.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Profession.Query { RequiredStaff_RefID = existingStaff.PPS_TSK_Task_RequiredStaffID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); existingStaff.IsDeleted = true; existingStaff.Save(Connection, Transaction); } //=====================Edit Staff===================== else if (existingStaff != null && existingStaff.Required_Employee_RefID == Guid.Empty) //if staff is not required employee { //=====================Edit profession===================== var existingProfession = ORM_PPS_TSK_Task_RequiredStaff_Profession.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Profession.Query { RequiredStaff_RefID = existingStaff.PPS_TSK_Task_RequiredStaffID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); if (existingProfession != null) { existingProfession.CMN_STR_Profession_RefID = staffParam.CMN_STR_Profession_RefID; existingProfession.Save(Connection, Transaction); } else { ORM_PPS_TSK_Task_RequiredStaff_Profession profession = new ORM_PPS_TSK_Task_RequiredStaff_Profession(); profession.PPS_TSK_Task_RequiredStaff_ProfessionID = Guid.NewGuid(); profession.RequiredStaff_RefID = existingStaff.PPS_TSK_Task_RequiredStaffID; profession.CMN_STR_Profession_RefID = staffParam.CMN_STR_Profession_RefID; profession.IsDeleted = false; profession.Tenant_RefID = securityTicket.TenantID; profession.Save(Connection, Transaction); } //=====================Edit skill===================== foreach (var skillParam in staffParam.StaffSkill) { var existingSkill = ORM_PPS_TSK_Task_RequiredStaff_Skill.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Skill.Query { RequiredStaff_RefID = existingStaff.PPS_TSK_Task_RequiredStaffID, CMN_STR_Skill_RefID = skillParam.CMN_STR_Skill_RefID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); //=====================New Skill===================== if (existingSkill == null && !skillParam.IsDeleted) { ORM_PPS_TSK_Task_RequiredStaff_Skill newSkill = new ORM_PPS_TSK_Task_RequiredStaff_Skill(); newSkill.PPS_TSK_Task_RequiredStaff_SkillID = Guid.NewGuid(); newSkill.CMN_STR_Skill_RefID = skillParam.CMN_STR_Skill_RefID; newSkill.RequiredStaff_RefID = staffParam.PPS_TSK_Task_RequiredStaffID; newSkill.IsDeleted = false; newSkill.Tenant_RefID = securityTicket.TenantID; newSkill.Save(Connection, Transaction); } //=====================Delete Skill===================== else if (existingSkill != null && skillParam.IsDeleted) { existingSkill.IsDeleted = true; existingSkill.Save(Connection, Transaction); } } //=====================Edit staff quantity===================== existingStaff.StaffQuantity = staffParam.StaffQuantity; existingStaff.Tenant_RefID = securityTicket.TenantID; existingStaff.Save(Connection, Transaction); } } } //=====================Edit Device===================== if (Parameter.Devices != null) { foreach (var deviceParam in Parameter.Devices) { var existingDevice = ORM_PPS_TSK_Task_Template_RequiredDevice.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template_RequiredDevice.Query { PPS_TSK_Task_Template_RequiredDeviceID = deviceParam.PPS_TSK_Task_Template_RequiredDeviceID, TaskTemplate_RefID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).SingleOrDefault(); //=====================New Devices===================== if (existingDevice == null && !deviceParam.IsDeleted) { ORM_PPS_TSK_Task_Template_RequiredDevice device = new ORM_PPS_TSK_Task_Template_RequiredDevice(); device.PPS_TSK_Task_Template_RequiredDeviceID = Guid.NewGuid(); device.TaskTemplate_RefID = task.PPS_TSK_Task_TemplateID; device.DEV_Device_RefID = deviceParam.DEV_Device_RefID; device.RequiredQuantity = deviceParam.RequiredQuantity; device.IsDeleted = false; device.Tenant_RefID = securityTicket.TenantID; device.Save(Connection, Transaction); } //=====================Edit Devices===================== else if (existingDevice != null) { existingDevice.IsDeleted = deviceParam.IsDeleted; existingDevice.RequiredQuantity = deviceParam.RequiredQuantity; existingDevice.Tenant_RefID = securityTicket.TenantID; existingDevice.Save(Connection, Transaction); } } } } #endregion #region Delete else { //=====================Delete ExcludedAvailabilityType===================== var existingAvailabilityType = ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_Template_ExcludedAvailabilityType.Query { IsDeleted = false, Tenant_RefID = securityTicket.TenantID, PPS_TSK_Task_Template_RefID = task.PPS_TSK_Task_TemplateID }); //=====================Delete Staff===================== var staffForDelete = ORM_PPS_TSK_Task_RequiredStaff.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff.Query { TaskTemplate_RefID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }).ToList(); foreach (var staff in staffForDelete) { ORM_PPS_TSK_Task_RequiredStaff_Skill.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Skill.Query { RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); ORM_PPS_TSK_Task_RequiredStaff_Profession.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Profession.Query { RequiredStaff_RefID = staff.PPS_TSK_Task_RequiredStaffID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); } ORM_PPS_TSK_Task_RequiredStaff.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff.Query { TaskTemplate_RefID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); //=====================Delete Devices===================== var devicesForDelete = ORM_PPS_TSK_Task_Template_RequiredDevice.Query.SoftDelete(Connection, Transaction, new ORM_PPS_TSK_Task_Template_RequiredDevice.Query { TaskTemplate_RefID = Parameter.PPS_TSK_Task_TemplateID, IsDeleted = false, Tenant_RefID = securityTicket.TenantID }); task.IsDeleted = true; } #endregion task.Save(Connection, Transaction); returnValue.Result = task.PPS_TSK_Task_TemplateID; } return(returnValue); #endregion UserCode }