コード例 #1
0
        public IQueryable <AssigngingsDTO> GetActualEmployeesBasedOnAssigningsAsRanksCategories(int OrganizationID)
        {
            try
            {
                List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID);

                // Get actual employees Based On Assignings by date
                List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList();

                var query = ActualEmployeesBasedOnAssignings.Select(y => new AssigngingsDTO(y.EmployeeCodeNo,
                                                                                            y.EmployeeNameAr,
                                                                                            y.OrganizationName,
                                                                                            y.JobName,
                                                                                            y.RankCategoryName,
                                                                                            y.RankName,
                                                                                            y.Sorting
                                                                                            ));


                return(query.AsQueryable());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #2
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public virtual AssigningsReasonsBLL GetLastAssigningEndReasonsByEmployeeCodeID(int EmployeeCodeID)
        {
            try
            {
                List <Assignings> AssigningsList = new AssigningsDAL().GetAssigningsByEmployeeCodeID(EmployeeCodeID).ToList();
                if (AssigningsList.Count == 0) // thats mean the employee is new ... and the reason of assigning will be (Beacuse of hiring)
                {
                    return(new AssigningsReasonsBLL().GetByAssigningReasonID((int)AssigningsReasonsEnum.Hiring));
                }
                else
                {
                    if (AssigningsList.Any(x => x.IsFinished == false)) // thats mean the employee already has active assigning and no Last Assignings End Reasons in this case
                    {
                        return(null);
                    }

                    Assignings LastBrokenAssigning = new AssigningsDAL().GetAssigningsByEmployeeCodeID(EmployeeCodeID).OrderByDescending(x => x.AssigningEndDate)
                                                     .OrderByDescending(x => x.AssigningID)
                                                     .FirstOrDefault(x => x.IsFinished == true && x.AssigningTypID == (int)AssigningsTypesEnum.Internal);
                    if (LastBrokenAssigning != null && LastBrokenAssigning.EndAssigningReasonID.HasValue)
                    {
                        return(new AssigningsReasonsBLL().MapAssigningReason(LastBrokenAssigning.EndAssigningsReasonsNav));
                    }

                    return(null);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #3
0
ファイル: PlacementBLL.cs プロジェクト: hanyweal/HCM
        public virtual List <PlacementBLL> GetEmployeesInPlaced()
        {
            try
            {
                List <PlacementBLL>            EmployeesInPlacedBLLList = new List <PlacementBLL>();
                List <EmployeesCareersHistory> Employees = new EmployeesCareersHistoryDAL().GetActiveEmployeesCareersHistory();
                List <Assignings> Assignings             = new AssigningsDAL().GetAssignings();
                List <OrganizationsStructures> OrganizationsStructures = new OrganizationsStructuresDAL().GetOrganizationStructure();
                int[] EmployeeCareerHistoryIDs = Assignings.Select(c => (int)c.EmployeeCareerHistoryID).ToArray();
                int[] ManagerCodeIDs           = OrganizationsStructures.Where(p => p.ManagerCodeID.HasValue == true).Select(c => c.ManagerCodeID.Value).ToArray(); //.Select(c => (int)c.ManagerCodeID).ToArray();
                Employees.RemoveAll(x => EmployeeCareerHistoryIDs.Contains(x.EmployeeCareerHistoryID));
                Employees.RemoveAll(o => ManagerCodeIDs.Contains(o.EmployeeCodeID));

                foreach (var item in Employees)
                {
                    EmployeesInPlacedBLLList.Add(new PlacementBLL()
                    {
                        EmployeeCareerHistory = new EmployeesCareersHistoryBLL().MapEmployeeCareerHistory(item)
                    });
                    //new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(((InternalAssigningBLL)AssigningBLL).Organization.OrganizationID);
                    EmployeesInPlacedBLLList.ForEach(x => x.EmployeeCareerHistory.OrganizationJob.OrganizationStructure.FullOrganizationName = new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(x.EmployeeCareerHistory.OrganizationJob.OrganizationStructure.OrganizationID));
                }
                return(EmployeesInPlacedBLLList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #4
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public static BaseAssigningsBLL GetByAssigningID(int AssigningID)
        {
            BaseAssigningsBLL assigningBLL = null;
            Assignings        assigning    = new AssigningsDAL().GetByAssigningID(AssigningID);

            if (assigning != null)
            {
                assigningBLL = new BaseAssigningsBLL().MapAssigning(assigning);
            }

            return(assigningBLL);
        }
コード例 #5
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public virtual List <BaseAssigningsBLL> GetAssigningsAlreadyExpiredNotFinished()
        {
            List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>();
            List <Assignings>        Assignings       = new AssigningsDAL().GetAssigningsAlreadyExpiredNotFinished();

            foreach (var item in Assignings)
            {
                AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item));
            }

            return(AssigningBLLList);
        }
コード例 #6
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public virtual List <BaseAssigningsBLL> GetAssigningsWillExpire(DateTime FromDate, int MonthPeriod)
        {
            List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>();
            List <Assignings>        Assignings       = new AssigningsDAL().GetAssigningsWillExpire(FromDate, MonthPeriod);

            foreach (var item in Assignings)
            {
                AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item));
            }

            return(AssigningBLLList);
        }
コード例 #7
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public virtual List <BaseAssigningsBLL> GetAssignings()
        {
            List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>();
            List <Assignings>        Assignings       = new AssigningsDAL().GetAssignings().Take(30).ToList();

            foreach (var item in Assignings)
            {
                AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item));
            }

            return(AssigningBLLList);
        }
コード例 #8
0
        public List <InternalAssigningBLL> Get()
        {
            try
            {
                List <Assignings>           AssigningsList           = new AssigningsDAL().GetAssignings().Where(x => x.AssigningsTypes.AssigningTypID == (int)AssigningsTypesEnum.Internal).ToList();
                List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>();
                foreach (var item in AssigningsList)
                {
                    InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item));
                }

                return(InternalAssigningBLLList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #9
0
        public List <InternalAssigningBLL> GetActiveEmployeesAssigingByOrganization(int OrganizationID)
        {
            try
            {
                List <Assignings>           AssigningsList           = new AssigningsDAL().GetActiveInternalAssigningsByOrganizationID(OrganizationID).ToList();
                List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>();
                foreach (var item in AssigningsList)
                {
                    InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item));
                }

                return(InternalAssigningBLLList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #10
0
        public List <InternalAssigningBLL> GetEmployeesUnderManagerByOrganization()
        {
            try
            {
                List <Assignings>           AssigningsList           = new AssigningsDAL().GetInternalAssigningsByManagerCodeIDOrganizationID(this.Manager.EmployeeCodeID, this.Organization.OrganizationID);
                List <InternalAssigningBLL> InternalAssigningBLLList = new List <InternalAssigningBLL>();
                foreach (var item in AssigningsList)
                {
                    InternalAssigningBLLList.Add((InternalAssigningBLL)MapAssigning(item));
                }

                return(InternalAssigningBLLList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #11
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        public virtual List <BaseAssigningsBLL> GetAssignings(out int totalRecordsOut, out int recFilterOut)
        {
            List <BaseAssigningsBLL> AssigningBLLList = new List <BaseAssigningsBLL>();
            List <Assignings>        Assignings       = new AssigningsDAL()
            {
                search   = Search,
                order    = Order,
                orderDir = OrderDir,
                startRec = StartRec,
                pageSize = PageSize
            }.GetAssignings(out totalRecordsOut, out recFilterOut);

            foreach (var item in Assignings)
            {
                AssigningBLLList.Add(new BaseAssigningsBLL().MapAssigning(item));
            }

            return(AssigningBLLList);
        }
コード例 #12
0
ファイル: BaseDelegationsBLL.cs プロジェクト: hanyweal/HCM
        public IQueryable <EmployeesDelegationsBasedOnAssigngingsDTO> GetEmployeesDelegationsBasedOnAssigningsAsRanksCategories(int DelegationTypeID, DateTime FromDate, DateTime ToDate, int OrganizationID)
        {
            try
            {
                List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID);
                DateTime   FromDateGr          = Convert.ToDateTime(Globals.Calendar.UmAlquraToGreg(string.Format("{0}/{1}/{2}", FromDate.Day, FromDate.Month, FromDate.Year)), new CultureInfo("en-US"));
                DateTime   ToDateGr            = Convert.ToDateTime(Globals.Calendar.UmAlquraToGreg(string.Format("{0}/{1}/{2}", ToDate.Day, ToDate.Month, ToDate.Year)), new CultureInfo("en-US"));
                List <vwActualEmployeesBasedOnAssignings> ActualEmployeesHaveDelegations = new List <vwActualEmployeesBasedOnAssignings>();

                // Get actual employees Based On Assignings by date
                List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x =>
                                                                                                                                                            // (FromDateGr.Date >= x.AssigningStartDate.Date && FromDateGr.Date <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date))
                                                                                                                                                            (
                                                                                                                                                                (FromDateGr >= x.AssigningStartDate && FromDateGr <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) ||
                                                                                                                                                                (ToDate >= x.AssigningStartDate && ToDate <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) ||
                                                                                                                                                                (FromDateGr >= x.AssigningStartDate && ToDate <= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date)) ||
                                                                                                                                                                (FromDateGr <= x.AssigningStartDate && ToDate >= (!x.AssigningEndDate.HasValue ? DateTime.Now.Date : x.AssigningEndDate.Value.Date))
                                                                                                                                                            ) &&
                                                                                                                                                            OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList();
                List <int> EmployeeCareerHistoryIDs = new List <int>();
                ActualEmployeesBasedOnAssignings.ForEach(x => EmployeeCareerHistoryIDs.Add(x.EmployeeCareerHistoryID.Value));

                List <DelegationsDetails> EmployeesDelegationsOfActualEmployeesList = new DelegationsDetailsDAL().GetEmployeesDelegationsByDate(FromDateGr, DelegationTypeID, EmployeeCareerHistoryIDs);

                var query = EmployeesDelegationsOfActualEmployeesList.Select(y => new EmployeesDelegationsBasedOnAssigngingsDTO(y.EmployeesCareersHistory.EmployeesCodes.EmployeeCodeNo,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).EmployeeNameAr,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).OrganizationName,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).JobName,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).RankCategoryName,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).RankName,
                                                                                                                                y.Delegations.DelegationStartDate,
                                                                                                                                y.Delegations.DelegationEndDate,
                                                                                                                                y.Delegations.DelegationsTypes.DelegationTypeName,
                                                                                                                                ActualEmployeesBasedOnAssignings.FirstOrDefault(x => x.EmployeeCodeID == y.EmployeesCareersHistory.EmployeeCodeID).Sorting
                                                                                                                                ));

                return(query.AsQueryable());
            }
            catch
            {
                throw;
            }
        }
コード例 #13
0
        //public List<ChartsAxis> GetQualificationsBasedOnAssigningsAsRanksCategories(int QualificationDegreeID, int QualificationID, int GeneralSpecializationID, int OrganizationID)
        //{
        //    try
        //    {
        //        List<int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID);

        //        // Get actual employees Based On Assignings by date
        //        List<vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList();

        //        List<int> EmployeesCodesIDs = new List<int>();
        //        ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesCodesIDs.Add(x.EmployeeCodeID));

        //        List<EmployeesQualificationsBLL> EmployeesQualificationsList = new EmployeesQualificationsBLL().GetEmployeesQualifications(EmployeesCodesIDs);

        //        List<EmployeesQualificationsBLL> EmployeesQualificationsOfActualEmployeesList = new List<EmployeesQualificationsBLL>();

        //        ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesQualificationsOfActualEmployeesList.Add(new EmployeesQualificationsBLL().GetLastEmployeeQualification(EmployeesQualificationsList, x.EmployeeCodeID)));

        //        EmployeesQualificationsOfActualEmployeesList = EmployeesQualificationsOfActualEmployeesList.Where(x => x.QualificationDegree.QualificationDegreeID == QualificationDegreeID
        //                                                                                                            && (QualificationID != 0 ? x.Qualification.QualificationID == QualificationID : x.Qualification.QualificationID == x.Qualification.QualificationID)
        //                                                                                                            && (GeneralSpecializationID != 0 ? x.GeneralSpecialization.GeneralSpecializationID == GeneralSpecializationID : x.GeneralSpecialization.GeneralSpecializationID == x.GeneralSpecialization.GeneralSpecializationID)).ToList();

        //        ActualEmployeesBasedOnAssignings.RemoveAll(x => !EmployeesQualificationsOfActualEmployeesList.Any(y => y.EmployeeCode.EmployeeCodeID == x.EmployeeCodeID));

        //        var query = ActualEmployeesBasedOnAssignings.GroupBy(x => x.RankCategoryName)
        //                                                    .Select(y => new
        //                                                    {
        //                                                        RankCategoryName = y.Key,
        //                                                        RecordCount = y.Count()
        //                                                    }).ToList();

        //        List<ChartsAxis> ChartAxisList = new List<ChartsAxis>();
        //        foreach (var item in query)
        //            ChartAxisList.Add(new ChartsAxis { KeyName = item.RankCategoryName, Value = item.RecordCount });

        //        return ChartAxisList;
        //    }
        //    catch
        //    {
        //        throw;
        //    }
        //}

        public IQueryable <EmployeesQualificationBasedOnAssigngingsDTO> GetQualificationsBasedOnAssigningsAsRanksCategoriesDetails(int QualificationDegreeID, int QualificationID, int GeneralSpecializationID, int OrganizationID)
        {
            try
            {
                List <int> OrganizationIDsList = new OrganizationsStructuresBLL().GetByOrganizationIDsWithhAllChilds(OrganizationID);

                // Get actual employees Based On Assignings by date
                List <vwActualEmployeesBasedOnAssignings> ActualEmployeesBasedOnAssignings = new AssigningsDAL().GetActualEmployeeBasedOnAssignings().Where(x => OrganizationIDsList.Contains(x.OrganizationID.Value)).ToList();

                List <int> EmployeesCodesIDs = new List <int>();
                ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesCodesIDs.Add(x.EmployeeCodeID));

                List <EmployeesQualificationsBLL> EmployeesQualificationsList = new EmployeesQualificationsBLL().GetEmployeesQualifications(EmployeesCodesIDs);

                List <EmployeesQualificationsBLL> EmployeesQualificationsOfActualEmployeesList = new List <EmployeesQualificationsBLL>();

                ActualEmployeesBasedOnAssignings.ForEach(x => EmployeesQualificationsOfActualEmployeesList.Add(new EmployeesQualificationsBLL().GetLastEmployeeQualification(EmployeesQualificationsList, x.EmployeeCodeID)));

                EmployeesQualificationsOfActualEmployeesList = EmployeesQualificationsOfActualEmployeesList.Where(x => x.QualificationDegree.QualificationDegreeID == QualificationDegreeID &&
                                                                                                                  (QualificationID != 0 ? x.Qualification.QualificationID == QualificationID : x.Qualification.QualificationID == x.Qualification.QualificationID) &&
                                                                                                                  (GeneralSpecializationID != 0 ? x.GeneralSpecialization.GeneralSpecializationID == GeneralSpecializationID : x.GeneralSpecialization.GeneralSpecializationID == x.GeneralSpecialization.GeneralSpecializationID)).ToList();

                ActualEmployeesBasedOnAssignings.RemoveAll(x => !EmployeesQualificationsOfActualEmployeesList.Any(y => y.EmployeeCode.EmployeeCodeID == x.EmployeeCodeID));

                var query = ActualEmployeesBasedOnAssignings.Select(y => new EmployeesQualificationBasedOnAssigngingsDTO(y.EmployeeCodeNo,
                                                                                                                         y.EmployeeNameAr,
                                                                                                                         y.OrganizationName,
                                                                                                                         y.JobName,
                                                                                                                         y.RankCategoryName,
                                                                                                                         y.RankName,
                                                                                                                         EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).QualificationDegree.QualificationDegreeName,
                                                                                                                         EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).Qualification.QualificationName,
                                                                                                                         EmployeesQualificationsOfActualEmployeesList.FirstOrDefault(x => x.EmployeeCode.EmployeeCodeID == y.EmployeeCodeID).GeneralSpecialization.GeneralSpecializationName,
                                                                                                                         y.Sorting
                                                                                                                         ));

                return(query.AsQueryable());
            }
            catch
            {
                throw;
            }
        }
コード例 #14
0
        public Result RemoveEmployeeFromManager()
        {
            try
            {
                Result result = null;

                #region Validate if the Placement period finished or not
                result = CommonHelper.IsValidToCompleteEmployeesPlacement();
                if (result != null)
                {
                    return(result);
                }
                #endregion

                Assignings Assigning = new AssigningsDAL().GetByAssigningID(this.AssigningID);
                new AssigningsDAL().Delete(this.AssigningID, this.LoginIdentity.EmployeeCodeID);

                if (Assigning != null)
                {
                    SMSLogsBLL SMSLogBLL = new SMSLogsBLL()
                    {
                        BusinssSubCategory = BusinessSubCategoriesEnum.OrganizationStructure,
                        MobileNo           = Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.EmployeeMobileNo,
                        DetailID           = 0,
                        Message            = string.Format(Globalization.SMSEmployeeAlreadyRemovedFromOrganizationManagerMessageText, Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.FirstNameAr + " " + Assigning.EmployeesCareersHistory.EmployeesCodes.Employees.LastNameAr, new OrganizationsStructuresBLL().GetOrganizationNameTillLastParentExceptPresident(Assigning.OrganizationID.Value)),
                        CreatedBy          = this.LoginIdentity,
                        CreatedDate        = DateTime.Now,
                    };
                    new SMSBLL().SendSMS(SMSLogBLL);
                }

                result            = new Result();
                result.EnumType   = typeof(AssigningsValidationEnum);
                result.EnumMember = AssigningsValidationEnum.Done.ToString();
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
コード例 #15
0
ファイル: BaseAssigningsBLL.cs プロジェクト: hanyweal/HCM
        //public BaseAssigningsBLL GetActiveAssigningByEmployeeCareerHistoryID(int EmployeeCareerHistoryID)
        //{
        //    BaseAssigningsBLL assigningBLL = new BaseAssigningsBLL();
        //    Assignings assigning = new AssigningsDAL().GetActiveAssigningByEmployeeCareerHistoryID(EmployeeCareerHistoryID);
        //    if (assigning != null)
        //        assigningBLL = new BaseAssigningsBLL().MapAssigning(assigning);

        //    return assigningBLL;
        //}

        /// <summary>
        /// Task # 226 :
        /// Finish last assigning, based on passing parameters
        /// this function called by different modules like Promotion, Delegation, or StopWork etc
        /// Task # 310 : change CareerHistoryID to EmployeeCodeID because of task 310
        /// Task 318: Service to Cancel EServicesProxies By System
        /// </summary>
        /// <param name="EmployeeCodeID"></param>
        /// <param name="AssigningEndDate"></param>
        /// <param name="EndAssigningReason"></param>
        /// <returns></returns>
        public Result BreakLastAssigning(int EmployeeCodeID, DateTime AssigningEndDate, AssigningsReasonsEnum EndAssigningReason, string EndAssigningReasonNotes = "")
        {
            Result            result       = new Result();
            BaseAssigningsBLL assigningBLL = new BaseAssigningsBLL();
            Assignings        assigning    = new AssigningsDAL().GetActiveAssigningByEmployeeCodeID(EmployeeCodeID);

            if (assigning != null)
            {
                if (assigning.IsFinished)
                {
                    result.Entity     = this;
                    result.EnumType   = typeof(AssigningsValidationEnum);
                    result.EnumMember = AssigningsValidationEnum.Done.ToString();
                    return(result);
                }

                if (AssigningEndDate < assigning.AssigningStartDate)
                {
                    result            = new Result();
                    result.EnumType   = typeof(AssigningsValidationEnum);
                    result.EnumMember = AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString();

                    return(result);
                }

                assigning.AssigningEndDate     = AssigningEndDate;
                assigning.EndAssigningReasonID = (int)EndAssigningReason;
                assigning.IsFinished           = true;
                assigning.Notes           = EndAssigningReasonNotes;
                assigning.LastUpdatedBy   = this.LoginIdentity.EmployeeCodeID;
                assigning.LastUpdatedDate = DateTime.Now;
                this.AssigningID          = new AssigningsDAL().BreakAssigning(assigning);
                if (this.AssigningID != 0)
                {
                    #region Cancellation of all pending e vacations requests of employee after breaking last assigning of him
                    List <EVacationsRequests> PendingEVacationRequestsList = new EVacationsRequestsDAL().GetByEmployeeCodeID(EmployeeCodeID, (int)EVacationRequestStatusEnum.Pending);
                    foreach (var item in PendingEVacationRequestsList)
                    {
                        result = new EVacationsRequestsBLL().CancelEVacationRequest(item.EVacationRequestID, EVacationRequestStatusEnum.CancelledBySystem, Globalization.EVacationRequestCancelledBySystemBecauseOfBreakingLastAssigningText);
                    }
                    #endregion

                    #region Task 318: Service to Cancel EServicesProxies By System
                    try
                    {
                        result = new EServicesProxiesBLL()
                        {
                            LoginIdentity = this.LoginIdentity
                        }
                        .RevokeEServiceProxyByEmployeeCodeID(EmployeeCodeID, EServicesProxiesStatusEnum.CancelledBySystem, Globalization.EServiceProxyCancelledBySystemBecauseOfBreakingLastAssigningText);
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                    #endregion

                    result.Entity     = this;
                    result.EnumType   = typeof(AssigningsValidationEnum);
                    result.EnumMember = AssigningsValidationEnum.Done.ToString();
                }
            }
            else
            {
                result.EnumType   = typeof(AssigningsValidationEnum);
                result.EnumMember = AssigningsValidationEnum.RejectedBecauseAssigningNotFound.ToString();
            }

            return(result);
        }