Example #1
0
        protected static FR_L5MHC_SD_1351 Execute(DbConnection Connection, DbTransaction Transaction, P_L5MHC_SD_1351 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5MHC_SD_1351();
            //Put your code here

            returnValue.Result = new L5MHC_SD_1351();

            Guid DeviceId = Guid.Empty;
            if (!Parameter.BaseData.IsDelete)
            {
                DeviceId = cls_Save_DeviceOnly.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;
            }
            else
            {
                List <ORM_PPS_DEV_Device_Instance> existingDeviceInstance = ORM_PPS_DEV_Device_Instance.Query.Search(Connection, Transaction, new ORM_PPS_DEV_Device_Instance.Query
                {
                    IsDeleted    = false,
                    Tenant_RefID = securityTicket.TenantID,
                    Device_RefID = Parameter.BaseData.PPS_DEV_DeviceID
                }).ToList();

                if (existingDeviceInstance.Count > 0) //cannot delete
                {
                    List <L5MHC_SD_1351_UsedInDeviceInstance> usedDeviceInstanceList = new List <L5MHC_SD_1351_UsedInDeviceInstance>();

                    foreach (var deviceInstance in existingDeviceInstance)
                    {
                        usedDeviceInstanceList.Add(new L5MHC_SD_1351_UsedInDeviceInstance {
                            DeviceInstanceName = deviceInstance.DeviceInventoryNumber
                        });
                    }

                    returnValue.Result.UsedInDeviceInstance = usedDeviceInstanceList.ToArray();
                }

                List <ORM_PPS_TSK_Task_Template_RequiredDevice> existingAppointmentType = ORM_PPS_TSK_Task_Template_RequiredDevice.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template_RequiredDevice.Query
                {
                    IsDeleted        = false,
                    Tenant_RefID     = securityTicket.TenantID,
                    DEV_Device_RefID = Parameter.BaseData.PPS_DEV_DeviceID
                }).ToList();

                if (existingAppointmentType.Count > 0) //cannot delete
                {
                    List <L5MHC_SD_1351_UsedInAppointmentType> usedAppointmentTypeList = new List <L5MHC_SD_1351_UsedInAppointmentType>();

                    foreach (var appointmentType in existingAppointmentType)
                    {
                        ORM_PPS_TSK_Task_Template appointmentTypeName = ORM_PPS_TSK_Task_Template.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template.Query
                        {
                            IsDeleted               = false,
                            Tenant_RefID            = securityTicket.TenantID,
                            PPS_TSK_Task_TemplateID = appointmentType.TaskTemplate_RefID
                        }).Single();
                        usedAppointmentTypeList.Add(new L5MHC_SD_1351_UsedInAppointmentType {
                            AppointmentTypeName = appointmentTypeName.TaskTemplateName
                        });
                    }
                    returnValue.Result.UsedInAppointmentType = usedAppointmentTypeList.ToArray();
                }

                if (existingDeviceInstance.Count == 0 && existingAppointmentType.Count == 0)
                {
                    DeviceId = cls_Save_DeviceOnly.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;
                }
            }
            returnValue.Result.ID = DeviceId;

            return(returnValue);

            #endregion UserCode
        }
        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
        }
		protected static FR_L6DO_SDaSwDC_1224 Execute(DbConnection Connection,DbTransaction Transaction,P_L6DO_SDaSwDC_1224 Parameter,CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null){
			#region UserCode 
			var returnValue = new FR_L6DO_SDaSwDC_1224();
			//Put your code here

            returnValue.Result = new L6DO_SDaSwDC_1224();

            Guid EmployeeId = Guid.Empty;
            if (!Parameter.BaseData.IsDeleted)
            {
                EmployeeId = cls_Save_Doctors_and_Staff.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;

                if(Parameter.UpdateSlots)
                    foreach (var unit in Parameter.BaseData.OrgUnits)
                        cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = unit.CMN_STR_Office_RefID }, securityTicket);
            }
            else
            {
                ORM_CMN_BPT_EMP_Employee employee = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee.Query
                {
                    IsDeleted = false,
                    Tenant_RefID = securityTicket.TenantID,
                    BusinessParticipant_RefID = Parameter.BaseData.CMN_BPT_BusinessParticipantID
                }).Single();

                List<ORM_PPS_TSK_Task_RequiredStaff> existingAppointmentType = ORM_PPS_TSK_Task_RequiredStaff.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff.Query
                {
                    IsDeleted = false,
                    Tenant_RefID = securityTicket.TenantID,
                    Required_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID
                }).ToList();

                if (existingAppointmentType.Count > 0) //cannot delete
                {
                    List<L6DO_SDaSwDC_1224_UsedInAppointmentType> usedAppointmentTypeList = new List<L6DO_SDaSwDC_1224_UsedInAppointmentType>();

                    foreach (var appointmentType in existingAppointmentType)
                    {
                        ORM_PPS_TSK_Task_Template appointmentTypeName = ORM_PPS_TSK_Task_Template.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template.Query{
                            IsDeleted = false,
                            Tenant_RefID = securityTicket.TenantID,
                            PPS_TSK_Task_TemplateID = appointmentType.TaskTemplate_RefID
                        }).Single();

                        usedAppointmentTypeList.Add(new L6DO_SDaSwDC_1224_UsedInAppointmentType { AppointmentTypeName = appointmentTypeName.TaskTemplateName });
                    }
                    returnValue.Result.UsedInAppointmentType = usedAppointmentTypeList.ToArray();
                }

                List<ORM_PPS_TSK_Task_StaffBooking> existingAppointment = ORM_PPS_TSK_Task_StaffBooking.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_StaffBooking.Query
                {
                    IsDeleted = false,
                    Tenant_RefID = securityTicket.TenantID,
                    CMN_BPT_EMP_Employee_RefID = employee.CMN_BPT_EMP_EmployeeID
                }).ToList();

                if (existingAppointment.Count > 0) //cannot delete
                {
                    List<L6DO_SDaSwDC_1224_UsedInAppointment> usedAppointmentList = new List<L6DO_SDaSwDC_1224_UsedInAppointment>();

                    foreach (var appointment in existingAppointment)
                    {
                        ORM_PPS_TSK_Task appointmentName = ORM_PPS_TSK_Task.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task.Query
                        {
                            IsDeleted = false,
                            Tenant_RefID = securityTicket.TenantID,
                            PPS_TSK_TaskID = appointment.PPS_TSK_Task_RefID
                        }).Single();

                        usedAppointmentList.Add(new L6DO_SDaSwDC_1224_UsedInAppointment { AppointmentName = appointmentName.DisplayName });
                    }
                    returnValue.Result.UsedInAppointment = usedAppointmentList.ToArray();
                }

                if (existingAppointment.Count == 0 && existingAppointmentType.Count == 0)
                {
                    EmployeeId = cls_Save_Doctors_and_Staff.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;
                    var emp = ORM_CMN_BPT_EMP_Employee.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee.Query { BusinessParticipant_RefID = Parameter.BaseData.CMN_BPT_BusinessParticipantID, Tenant_RefID = securityTicket.TenantID }).FirstOrDefault();
                    var orgUnits = 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, Tenant_RefID = securityTicket.TenantID });
                    if(Parameter.UpdateSlots)
                        foreach (var unit in orgUnits)
                            cls_CreateUpdate_Slots_for_Practice.Invoke(Connection, Transaction, new P_L5S_SUSfP_1708() { PracticeID = unit.CMN_STR_Office_RefID }, securityTicket);
                }
            }
            returnValue.Result.ID = EmployeeId;

			return returnValue;
			#endregion UserCode
		}
Example #4
0
        protected static FR_L5DO_SPwDC_1515 Execute(DbConnection Connection, DbTransaction Transaction, P_L5DO_SPwDC_1515 Parameter, CSV2Core.SessionSecurity.SessionSecurityTicket securityTicket = null)
        {
            #region UserCode
            var returnValue = new FR_L5DO_SPwDC_1515();
            //Put your code here

            returnValue.Result = new L5DO_SPwDC_1515();

            Guid ProfessionId = Guid.Empty;
            if (!Parameter.BaseData.IsDeleted)
            {
                ProfessionId = cls_Save_Profession.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;
            }
            else
            {
                List <ORM_CMN_BPT_EMP_Employee_2_Profession> existingEmployee = ORM_CMN_BPT_EMP_Employee_2_Profession.Query.Search(Connection, Transaction, new ORM_CMN_BPT_EMP_Employee_2_Profession.Query
                {
                    IsDeleted        = false,
                    Tenant_RefID     = securityTicket.TenantID,
                    Profession_RefID = Parameter.BaseData.StaffTypeID
                }).ToList();

                if (existingEmployee.Count > 0) //cannot delete
                {
                    List <L5DO_SPwDC_1515_UsedInEmployee> usedEmployeeList = new List <L5DO_SPwDC_1515_UsedInEmployee>();

                    foreach (var employee in existingEmployee)
                    {
                        L5DO_GSNfEID_1107 employeeName = cls_Get_Staff_Name_for_EmployeeID.Invoke(Connection, Transaction, new P_L5DO_GSNfEID_1107 {
                            EmployeeID = employee.Employee_RefID
                        }, securityTicket).Result;
                        string fullName = employeeName.FirstName + " " + employeeName.LastName;
                        usedEmployeeList.Add(new L5DO_SPwDC_1515_UsedInEmployee {
                            EmployeeName = fullName
                        });
                    }
                    returnValue.Result.UsedInEmployee = usedEmployeeList.ToArray();
                }

                List <ORM_PPS_TSK_Task_RequiredStaff_Profession> existingAppointmentType = ORM_PPS_TSK_Task_RequiredStaff_Profession.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff_Profession.Query
                {
                    IsDeleted                = false,
                    Tenant_RefID             = securityTicket.TenantID,
                    CMN_STR_Profession_RefID = Parameter.BaseData.StaffTypeID
                }).ToList();

                if (existingAppointmentType.Count > 0) //cannot delete
                {
                    List <L5DO_SPwDC_1515_UsedInAppointmentType> usedAppointmentTypeList = new List <L5DO_SPwDC_1515_UsedInAppointmentType>();

                    foreach (var appointmentType in existingAppointmentType)
                    {
                        ORM_PPS_TSK_Task_RequiredStaff reqStaff = ORM_PPS_TSK_Task_RequiredStaff.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_RequiredStaff.Query
                        {
                            IsDeleted    = false,
                            Tenant_RefID = securityTicket.TenantID,
                            PPS_TSK_Task_RequiredStaffID = appointmentType.RequiredStaff_RefID
                        }).Single();
                        ORM_PPS_TSK_Task_Template appointmentTypeName = ORM_PPS_TSK_Task_Template.Query.Search(Connection, Transaction, new ORM_PPS_TSK_Task_Template.Query
                        {
                            IsDeleted               = false,
                            Tenant_RefID            = securityTicket.TenantID,
                            PPS_TSK_Task_TemplateID = reqStaff.TaskTemplate_RefID
                        }).Single();
                        usedAppointmentTypeList.Add(new L5DO_SPwDC_1515_UsedInAppointmentType {
                            AppointmentTypeName = appointmentTypeName.TaskTemplateName
                        });
                    }

                    returnValue.Result.UsedInAppointmentType = usedAppointmentTypeList.ToArray();
                }

                if (existingEmployee.Count == 0 && existingAppointmentType.Count == 0)
                {
                    ProfessionId = cls_Save_Profession.Invoke(Connection, Transaction, Parameter.BaseData, securityTicket).Result;
                }
            }
            returnValue.Result.ID = ProfessionId;

            return(returnValue);

            #endregion UserCode
        }