Exemple #1
0
        public ActionResult ExportExcelAssignings()
        {
            BaseAssigningsBLL AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            var data = Json(new
            {
                data = AssigningBLL.GetAssignings().Select(x => new
                {
                    x.AssigningID,
                    EmployeeCodeNo     = x.EmployeeCareerHistory.EmployeeCode.EmployeeCodeNo,
                    EmployeeNameAr     = x.EmployeeCareerHistory.EmployeeCode.Employee.EmployeeNameAr,
                    AssigningStartDate = Globals.Calendar.GetUmAlQuraDate(x.AssigningStartDate),
                    AssigningEndDate   = x.AssigningEndDate.HasValue ? Globals.Calendar.GetUmAlQuraDate(x.AssigningEndDate.Value) : "",
                    OrganizationName   = x.AssigningType.AssigningTypeID == (int)AssigningsTypesEnum.Internal ? ((InternalAssigningBLL)x).Organization.FullOrganizationName : ((ExternalAssigningBLL)x).ExternalOrganization,
                    JobName            = x.AssigningType.AssigningTypeID == (int)AssigningsTypesEnum.Internal ? ((InternalAssigningBLL)x).Job.JobName : string.Empty,
                    IsFinished         = x.IsFinished,
                })
            }, JsonRequestBehavior.AllowGet);

            Dictionary <string, string> ColumnNames = new Dictionary <string, string>
            {
                { "AssigningID", Resources.Globalization.SequenceNoText },
                { "EmployeeCodeNo", Resources.Globalization.EmployeeCodeNoText },
                { "EmployeeNameAr", Resources.Globalization.EmployeeNameArText },
                { "AssigningStartDate", Resources.Globalization.AssigningStartDateText },
                { "AssigningEndDate", Resources.Globalization.AssigningEndDateText },
                { "IsFinished", Resources.Globalization.AssigningIsFinishedText },
                { "OrganizationName", Resources.Globalization.OrganizationNameText },
                { "JobName", Resources.Globalization.JobNameText }
            };

            string fileName = ExcelHelper.ExportToExcel(Json(data), ColumnNames);

            return(Json(new { DownLoadFile = fileName }, JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        public JsonResult GetAssigningID()
        {
            BaseAssigningsBLL AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            AssigningBLL.AssigningID = int.Parse(Session["AssigningID"].ToString());
            return(Json(new { data = AssigningBLL }, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        public ActionResult EditLender(LendersViewModel LenderVM)
        {
            LendersBLL LenderBLL = new LendersBLL()
            {
                LenderID           = LenderVM.LenderID,
                LenderStartDate    = LenderVM.LenderStartDate.Date,
                LenderEndDate      = LenderVM.LenderEndDate.Date,
                LenderOrganization = LenderVM.LenderOrganization,
                IsFinished         = LenderVM.IsFinished,
                KSACity            = new KSACitiesBLL()
                {
                    KSACityID = LenderVM.KSACity.KSACityID
                },
                EmployeeCareerHistory = new EmployeesCareersHistoryBLL()
                {
                    EmployeeCareerHistoryID = LenderVM.EmployeeCareerHistoryID
                },
                LoginIdentity = new EmployeesCodesBLL()
                {
                    EmployeeCodeID = int.Parse(Session["EmployeeCodeID"].ToString())
                },
            };
            Result result = LenderBLL.Update();

            if ((System.Type)result.EnumType == typeof(NoConflictWithOtherProcessValidationEnum))
            {
                Classes.Helpers.CommonHelper.ConflictValidationMessage(result);
            }
            if ((System.Type)result.EnumType == typeof(LendersValidationEnum))
            {
                if (result.EnumMember == LendersValidationEnum.Done.ToString())
                {
                    Session["LenderID"] = ((LendersBLL)result.Entity).LenderID;
                }
                else if (result.EnumMember == LendersValidationEnum.RejectedBecauseAlreadyFinished.ToString())
                {
                    throw new CustomException(string.Format(Resources.Globalization.ValidationLenderAlreadyFinishedEditNotAllowedText));
                }
                else if (result.EnumMember == LendersValidationEnum.RejectedBecauseOfConflictWithAssigning.ToString())
                {
                    BaseAssigningsBLL Assigning = ((BaseAssigningsBLL)result.Entity);
                    throw new CustomException(string.Format(Resources.Globalization.ValidationConflictWithAssigningText,
                                                            Assigning.AssigningStartDate.ToShortDateString(), Assigning.AssigningEndDate.Value.ToShortDateString()));
                }
                //else if (result.EnumMember == LendersValidationEnum.RejectedBecauseOfActivePreviousLender.ToString())
                //{
                //    throw new CustomException(Resources.Globalization.MustEndPreviousLenderText + "NewLine" + "تاريخ اخر تكليف : " + assgining.LenderStartDate.ToShortDateString());
                //}
            }
            return(View(this.GetLenderByLenderID(LenderVM.LenderID)));
            //return View(LenderVM);
        }
Exemple #4
0
        public ActionResult End(AssigningsViewModel AssigningVM)
        {
            BaseAssigningsBLL assigning = new BaseAssigningsBLL();

            assigning.AssigningID   = AssigningVM.AssigningID;
            assigning.LoginIdentity = UserIdentity;

            Result result = assigning.BreakLastAssigning(AssigningVM.EmployeeCodeID, DateTime.Now, (AssigningsReasonsEnum)AssigningVM.EndAssigningReasonID, assigning.Notes);

            if (result.EnumMember == OrganizationStructureValidationEnum.RejectedBecauseOfPlacementPeriodFinished.ToString())
            {
                throw new CustomException(Resources.Globalization.EmployeesPlacementPeriodFinishedText);
            }

            return(View(AssigningVM));
        }
Exemple #5
0
        public ActionResult GetAssigningsWillExpire()
        {
            BaseAssigningsBLL AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            return(Json(new
            {
                data = AssigningBLL.GetAssigningsWillExpire(DateTime.Now, 1).Select(x => new
                {
                    x.AssigningID,
                    EmployeeCodeNo = x.EmployeeCareerHistory.EmployeeCode.EmployeeCodeNo,
                    EmployeeNameAr = x.EmployeeCareerHistory.EmployeeCode.Employee.EmployeeNameAr,
                    AssigningStartDate = x.AssigningStartDate,
                    AssigningEndDate = x.AssigningEndDate,
                    IsFinished = x.IsFinished,
                })
            }, JsonRequestBehavior.AllowGet));
        }
Exemple #6
0
        public ActionResult Delete(AssigningsViewModel AssigningVM)
        {
            BaseAssigningsBLL assigningsBLL = new BaseAssigningsBLL();

            assigningsBLL.LoginIdentity = UserIdentity;
            Result result = assigningsBLL.Remove(AssigningVM.AssigningID);

            if ((System.Type)result.EnumType == typeof(AssigningsValidationEnum))
            {
                if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfAlreadyFinished.ToString())
                {
                    throw new CustomException(Resources.Globalization.ValidationBecauseOfAssigningAlreadyFinishedText);
                }
            }

            return(View(AssigningVM));
        }
Exemple #7
0
        public string GetOrganizationName(int EmployeeCareerHistoryID)
        {
            string            OrgName      = "";
            BaseAssigningsBLL AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            AssigningBLL = AssigningBLL.GetEmployeeActiveAssigning(EmployeeCareerHistoryID);

            if (AssigningBLL != null && AssigningBLL.AssigningID > 0)
            {
                if (AssigningBLL.AssigningType.AssigningTypeID == (int)AssigningsTypesEnum.Internal)
                {
                    OrgName = ((InternalAssigningBLL)AssigningBLL).Organization.FullOrganizationName;
                }
                else
                {
                    OrgName = ((ExternalAssigningBLL)AssigningBLL).ExternalOrganization;
                }
            }

            return(OrgName);
        }
Exemple #8
0
        public ActionResult GetAssignings()
        {
            BaseAssigningsBLL AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            AssigningBLL.Search   = Search;
            AssigningBLL.Order    = Order;
            AssigningBLL.OrderDir = OrderDir;
            AssigningBLL.StartRec = StartRec;
            AssigningBLL.PageSize = PageSize;

            var data = AssigningBLL.GetAssignings(out TotalRecordsOut, out RecFilterOut).Select(x => new
            {
                x.AssigningID,
                EmployeeCodeNo     = x.EmployeeCareerHistory.EmployeeCode.EmployeeCodeNo,
                EmployeeNameAr     = x.EmployeeCareerHistory.EmployeeCode.Employee.EmployeeNameAr,
                AssigningStartDate = x.AssigningStartDate,
                AssigningEndDate   = x.AssigningEndDate,
                IsFinished         = x.IsFinished,
            });

            return(Json(new { draw = Convert.ToInt32(Draw), recordsTotal = TotalRecordsOut, recordsFiltered = RecFilterOut, data = data }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetEmployeesUnderManagerByOrganization(int OrganizationID)
        {
            BaseAssigningsBLL           AssigningBLL = AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);
            List <InternalAssigningBLL> Employees    = new InternalAssigningBLL()
            {
                Organization = new OrganizationsStructuresBLL()
                {
                    OrganizationID = OrganizationID
                },
                Manager = new EmployeesCodesBLL()
                {
                    EmployeeCodeID = this.WindowsEmployeeCode.EmployeeCodeID
                }
            }.GetEmployeesUnderManagerByOrganization();

            if (Employees != null)
            {
                return(Json(new
                {
                    data = Employees.Select(x => new
                    {
                        AssigningID = x.AssigningID,
                        EmployeeCodeID = x.EmployeeCareerHistory?.EmployeeCode?.EmployeeCodeID,
                        EmployeeCodeNo = x.EmployeeCareerHistory?.EmployeeCode?.EmployeeCodeNo,
                        EmployeeIDNo = x.EmployeeCareerHistory?.EmployeeCode?.Employee?.EmployeeIDNo,
                        FullEmployeeName = x.EmployeeCareerHistory?.EmployeeCode?.Employee?.EmployeeNameAr,
                        OrganizationName = x.EmployeeCareerHistory != null ? x.Organization?.OrganizationName : string.Empty,
                        JobName = x.EmployeeCareerHistory != null ? x.Job?.JobName : string.Empty,
                        AssigningReason = x.AssigningReason?.AssigningReasonName,
                        CreatedDate = x.CreatedDate
                    })
                }, JsonRequestBehavior.AllowGet));
            }
            else
            {
                throw new Exception();
            }
        }
        public HttpResponseMessage EndingEmployeeAssigning(AssigningsViewModel AssigningVM)
        {
            BaseAssigningsBLL assigning = (InternalAssigningBLL)AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);

            assigning.AssigningID   = AssigningVM.AssigningID;
            assigning.LoginIdentity = WindowsEmployeeCode;

            //assigning.EmployeeCareerHistory = new EmployeesCareersHistoryBLL() { EmployeeCode = new EmployeesCodesBLL() { emplo } }
            //assigning.AssigningEndDate = DateTime.Now;
            //assigning.AssigningEndReason = new AssigningsReasonsBLL() { AssigningReasonID = AssigningVM.EndAssigningReasonID };
            //assigning.Notes = AssigningVM.Notes;

            Result result = assigning.BreakLastAssigning(AssigningVM.EmployeeCodeID, DateTime.Now, (AssigningsReasonsEnum)AssigningVM.EndAssigningReasonID, assigning.Notes);

            if (result.EnumMember == OrganizationStructureValidationEnum.RejectedBecauseOfPlacementPeriodFinished.ToString())
            {
                throw new CustomException(Resources.Globalization.EmployeesPlacementPeriodFinishedText);
            }
            else
            {
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
        }
Exemple #11
0
        private AssigningsViewModel GetByAssigningID(int id)
        {
            BaseAssigningsBLL   AssigningBLL = BaseAssigningsBLL.GetByAssigningID(id);
            AssigningsViewModel AssigningVM  = new AssigningsViewModel();

            if (AssigningBLL != null)
            {
                AssigningVM.ExternalKSACity = new KSACitiesBLL()
                {
                    KSACityID = 0
                };                                                                  // set default to avoid Object reference error.

                if (AssigningBLL.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.Internal)
                {
                    if (((InternalAssigningBLL)AssigningBLL).Job != null)
                    {
                        AssigningVM.Job = new JobsViewModel()
                        {
                            JobID   = ((InternalAssigningBLL)AssigningBLL).Job.JobID,
                            JobName = ((InternalAssigningBLL)AssigningBLL).Job.JobName
                        };
                    }
                    AssigningVM.OrganizationStructure = new OrganizationStructureViewModel()
                    {
                        OrganizationID       = ((InternalAssigningBLL)AssigningBLL).Organization.OrganizationID,
                        OrganizationName     = ((InternalAssigningBLL)AssigningBLL).Organization.OrganizationName,
                        FullOrganizationName = ((InternalAssigningBLL)AssigningBLL).Organization.FullOrganizationName
                    };
                    if (((InternalAssigningBLL)AssigningBLL).Manager != null)
                    {
                        AssigningVM.Manager = new ParentOrganizationManagerViewModel()
                        {
                            ManagerCodeID = ((InternalAssigningBLL)AssigningBLL).Manager.EmployeeCodeID,
                            ManagerCodeNo = ((InternalAssigningBLL)AssigningBLL).Manager.EmployeeCodeNo,
                            ManagerNameAr = ((InternalAssigningBLL)AssigningBLL).Manager.Employee.EmployeeNameAr,
                        };
                    }
                }
                else if (AssigningBLL.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.External)
                {
                    AssigningVM.ExternalOrganization = ((ExternalAssigningBLL)AssigningBLL).ExternalOrganization;
                    AssigningVM.ExternalKSARegion    = ((ExternalAssigningBLL)AssigningBLL).ExternalKSACity.KSARegion;
                    AssigningVM.ExternalKSACity      = ((ExternalAssigningBLL)AssigningBLL).ExternalKSACity;
                    AssigningVM.Job = new JobsViewModel();
                    AssigningVM.OrganizationStructure = new OrganizationStructureViewModel();
                }
                AssigningVM.AssigningType      = AssigningBLL.AssigningType;
                AssigningVM.AssigningID        = AssigningBLL.AssigningID;
                AssigningVM.AssginingStartDate = AssigningBLL.AssigningStartDate;
                AssigningVM.AssginingEndDate   = AssigningBLL.AssigningEndDate;
                AssigningVM.IsFinished         = AssigningBLL.IsFinished;

                if (AssigningBLL.AssigningReason != null && AssigningBLL.AssigningReason.AssigningReasonID > 0)
                {
                    AssigningVM.AssigningReason      = AssigningBLL.AssigningReason;
                    AssigningVM.AssigningReasonOther = AssigningBLL.AssigningReasonOther;
                }
                AssigningVM.EmployeeCodeID = AssigningBLL.EmployeeCareerHistory.EmployeeCode.EmployeeCodeID;
                AssigningVM.Employee       = new EmployeesViewModel()
                {
                    EmployeeCodeID = AssigningBLL.EmployeeCareerHistory.EmployeeCode.EmployeeCodeID
                };
                AssigningVM.Employee    = AssigningVM.Employee.GetEmployee();
                AssigningVM.CreatedDate = AssigningBLL.CreatedDate;
                AssigningVM.CreatedBy   = AssigningVM.GetCreatedByDisplayed(AssigningBLL.CreatedBy);
            }
            return(AssigningVM);
        }
Exemple #12
0
        public ActionResult EditAssigning(AssigningsViewModel AssigningVM)
        {
            if (AssigningVM.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.Internal)
            {
                InternalAssigningBLL assigning = (InternalAssigningBLL)AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);
                assigning.AssigningID   = AssigningVM.AssigningID;
                assigning.AssigningType = new AssigningsTypesBLL()
                {
                    AssigningTypeID = (Int32)AssigningsTypesEnum.Internal
                };
                assigning.AssigningStartDate = AssigningVM.AssginingStartDate.Value.Date;
                //assigning.AssigningEndDate = AssigningVM.AssginingEndDate.HasValue ? AssigningVM.AssginingEndDate.Value.Date : (DateTime?)null;
                //assigning.IsFinished = AssigningVM.IsFinished;
                assigning.EmployeeCareerHistory = new EmployeesCareersHistoryBLL()
                {
                    EmployeeCareerHistoryID = AssigningVM.EmployeeCareerHistoryID
                };
                assigning.Job = new JobsBLL()
                {
                    JobID = AssigningVM.JobID.HasValue ? AssigningVM.JobID.Value : 0
                };
                assigning.Organization = new OrganizationsStructuresBLL()
                {
                    OrganizationID = AssigningVM.OrganizationID.Value
                };
                assigning.Manager = AssigningVM.ManagerCodeID.HasValue ? new EmployeesCodesBLL()
                {
                    EmployeeCodeID = AssigningVM.ManagerCodeID.Value
                } : null;

                assigning.AssigningReason = new AssigningsReasonsBLL()
                {
                    AssigningReasonID = AssigningVM.AssigningReason.AssigningReasonID
                };
                assigning.LoginIdentity = new EmployeesCodesBLL()
                {
                    EmployeeCodeID = int.Parse(Session["EmployeeCodeID"].ToString())
                };
                assigning.AssigningReasonOther = AssigningVM.AssigningReasonOther;

                Result result = assigning.Update();
                if ((System.Type)result.EnumType == typeof(AssigningsValidationEnum))
                {
                    if (result.EnumMember == AssigningsValidationEnum.Done.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        Session["AssigningID"] = ((InternalAssigningBLL)result.Entity).AssigningID;
                    }

                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfAlreadyFinished.ToString())
                    {
                        throw new CustomException(Resources.Globalization.ValidationBecauseOfAssigningAlreadyFinishedText);
                    }
                    //else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfActivePreviousAssigning.ToString())
                    //{
                    //    BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                    //    throw new CustomException(Resources.Globalization.MustEndPreviousAssigningText + "NewLine" + "تاريخ اخر تكليف : " + assgining.AssigningStartDate.ToShortDateString());
                    //}
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfConflictWithLenders.ToString())
                    {
                        LendersBLL Lender = ((LendersBLL)result.Entity);
                        throw new CustomException(string.Format(Resources.Globalization.ValidationConflictWithLenderText,
                                                                Lender.LenderStartDate.ToShortDateString(), Lender.LenderEndDate.ToShortDateString()));
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString())
                    {
                        throw new CustomException(Resources.Globalization.ValidationBecauseOfEndDateIsLessThanCreationDateText);
                    }
                }
            }
            else if (AssigningVM.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.External)
            {
                ExternalAssigningBLL assigning = (ExternalAssigningBLL)AssigingsFactory.CreateAssigning(AssigningsTypesEnum.External);
                assigning.AssigningID   = AssigningVM.AssigningID;
                assigning.AssigningType = new AssigningsTypesBLL()
                {
                    AssigningTypeID = (Int32)AssigningsTypesEnum.External
                };
                assigning.AssigningStartDate = AssigningVM.AssginingStartDate.Value.Date;
                //assigning.AssigningEndDate = AssigningVM.AssginingEndDate.HasValue ? AssigningVM.AssginingEndDate.Value.Date : (DateTime?)null;
                //assigning.IsFinished = AssigningVM.IsFinished;
                //assigning.Employee = new EmployeesCodesBLL() { EmployeeCodeID = AssigningVM.EmployeeCodeID };
                assigning.EmployeeCareerHistory = new EmployeesCareersHistoryBLL()
                {
                    EmployeeCareerHistoryID = AssigningVM.EmployeeCareerHistoryID
                };
                assigning.ExternalKSACity = new KSACitiesBLL()
                {
                    KSACityID = AssigningVM.ExternalKSACity.KSACityID
                };
                assigning.ExternalOrganization = AssigningVM.ExternalOrganization;
                assigning.AssigningReason      = new AssigningsReasonsBLL()
                {
                    AssigningReasonID = AssigningVM.AssigningReason.AssigningReasonID
                };
                assigning.LoginIdentity = new EmployeesCodesBLL()
                {
                    EmployeeCodeID = int.Parse(Session["EmployeeCodeID"].ToString())
                };
                assigning.AssigningReasonOther = AssigningVM.AssigningReasonOther;

                Result result = assigning.Update();
                if ((System.Type)result.EnumType == typeof(AssigningsValidationEnum))
                {
                    if (result.EnumMember == AssigningsValidationEnum.Done.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        Session["AssigningID"] = ((ExternalAssigningBLL)result.Entity).AssigningID;
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfActivePreviousAssigning.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        throw new CustomException(Resources.Globalization.MustEndPreviousAssigningText + "NewLine" + Resources.Globalization.LastAssigningStartDateText + assgining.AssigningStartDate.ToShortDateString());
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfConflictWithLenders.ToString())
                    {
                        LendersBLL Lender = ((LendersBLL)result.Entity);
                        throw new CustomException(string.Format(Resources.Globalization.ValidationConflictWithLenderText,
                                                                Lender.LenderStartDate.ToShortDateString(), Lender.LenderEndDate.ToShortDateString()));
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString())
                    {
                        throw new CustomException(Resources.Globalization.ValidationBecauseOfEndDateIsLessThanCreationDateText);
                    }
                }
            }
            return(View(this.GetByAssigningID(AssigningVM.AssigningID)));
        }
Exemple #13
0
        public ActionResult Create(AssigningsViewModel AssigningVM)
        {
            if (AssigningVM.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.Internal)
            {
                InternalAssigningBLL assigning = (InternalAssigningBLL)AssigingsFactory.CreateAssigning(AssigningsTypesEnum.Internal);
                assigning.AssigningType = new AssigningsTypesBLL()
                {
                    AssigningTypeID = (int)AssigningsTypesEnum.Internal
                };
                assigning.AssigningStartDate    = AssigningVM.AssginingStartDate.Value.Date;
                assigning.AssigningEndDate      = AssigningVM.AssginingEndDate.HasValue ? AssigningVM.AssginingEndDate.Value.Date : (DateTime?)null;
                assigning.EmployeeCareerHistory = new EmployeesCareersHistoryBLL().GetActiveByEmployeeCareerHistoryID(AssigningVM.EmployeeCareerHistoryID);
                assigning.Manager = AssigningVM.ManagerCodeID.HasValue ? new EmployeesCodesBLL()
                {
                    EmployeeCodeID = AssigningVM.ManagerCodeID.Value
                } : null;
                assigning.Job = new JobsBLL()
                {
                    JobID = AssigningVM.JobID.HasValue ? AssigningVM.JobID.Value : 0
                };
                if (AssigningVM.OrganizationID.HasValue)
                {
                    assigning.Organization = new OrganizationsStructuresBLL()
                    {
                        OrganizationID = AssigningVM.OrganizationID.Value
                    }
                }
                ;
                assigning.AssigningReason = new AssigningsReasonsBLL()
                {
                    AssigningReasonID = AssigningVM.AssigningReason.AssigningReasonID
                };
                assigning.AssigningReasonOther = AssigningVM.AssigningReasonOther;
                assigning.LoginIdentity        = this.UserIdentity;

                Result result = assigning.Add();
                if ((System.Type)result.EnumType == typeof(NoConflictWithOtherProcessValidationEnum))
                {
                    Classes.Helpers.CommonHelper.ConflictValidationMessage(result);
                }
                if ((System.Type)result.EnumType == typeof(AssigningsValidationEnum))
                {
                    if (result.EnumMember == AssigningsValidationEnum.Done.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        Session["AssigningID"] = ((InternalAssigningBLL)result.Entity).AssigningID;
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfActivePreviousAssigning.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        throw new CustomException(Resources.Globalization.MustEndPreviousAssigningText + "NewLine" + "تاريخ اخر تكليف : " + assgining.AssigningStartDate.ToShortDateString());
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfConflictWithLenders.ToString())
                    {
                        LendersBLL Lender = ((LendersBLL)result.Entity);
                        throw new CustomException(string.Format(Resources.Globalization.ValidationConflictWithLenderText,
                                                                Lender.LenderStartDate.ToShortDateString(), Lender.LenderEndDate.ToShortDateString()));
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString())
                    {
                        throw new CustomException(Resources.Globalization.ValidationBecauseOfEndDateIsLessThanCreationDateText);
                    }
                }
            }
            else if (AssigningVM.AssigningType.AssigningTypeID == (Int32)AssigningsTypesEnum.External)
            {
                ExternalAssigningBLL assigning = (ExternalAssigningBLL)AssigingsFactory.CreateAssigning(AssigningsTypesEnum.External);
                assigning.AssigningType = new AssigningsTypesBLL()
                {
                    AssigningTypeID = (int)AssigningsTypesEnum.External
                };
                assigning.AssigningStartDate    = AssigningVM.AssginingStartDate.Value.Date;
                assigning.AssigningEndDate      = AssigningVM.AssginingEndDate.HasValue ? AssigningVM.AssginingEndDate.Value.Date : (DateTime?)null;
                assigning.EmployeeCareerHistory = new EmployeesCareersHistoryBLL().GetActiveByEmployeeCareerHistoryID(AssigningVM.EmployeeCareerHistoryID);
                assigning.ExternalKSACity       = new KSACitiesBLL()
                {
                    KSACityID = AssigningVM.ExternalKSACity.KSACityID
                };
                assigning.ExternalOrganization = AssigningVM.ExternalOrganization;
                assigning.AssigningReason      = new AssigningsReasonsBLL()
                {
                    AssigningReasonID = AssigningVM.AssigningReason.AssigningReasonID
                };
                assigning.AssigningReasonOther = AssigningVM.AssigningReasonOther;
                assigning.LoginIdentity        = this.UserIdentity;

                Result result = assigning.Add();
                if ((System.Type)result.EnumType == typeof(NoConflictWithOtherProcessValidationEnum))
                {
                    Classes.Helpers.CommonHelper.ConflictValidationMessage(result);
                }
                if ((System.Type)result.EnumType == typeof(AssigningsValidationEnum))
                {
                    if (result.EnumMember == AssigningsValidationEnum.Done.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        Session["AssigningID"] = ((ExternalAssigningBLL)result.Entity).AssigningID;
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfActivePreviousAssigning.ToString())
                    {
                        BaseAssigningsBLL assgining = (BaseAssigningsBLL)result.Entity;
                        throw new CustomException(Resources.Globalization.MustEndPreviousAssigningText + "NewLine" + "تاريخ اخر تكليف : " + assgining.AssigningStartDate.ToShortDateString());
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfConflictWithLenders.ToString())
                    {
                        LendersBLL Lender = ((LendersBLL)result.Entity);
                        throw new CustomException(string.Format(Resources.Globalization.ValidationConflictWithLenderText,
                                                                Lender.LenderStartDate.ToShortDateString(), Lender.LenderEndDate.ToShortDateString()));
                    }
                    else if (result.EnumMember == AssigningsValidationEnum.RejectedBecauseOfEndDateIsLessThanCreationDate.ToString())
                    {
                        throw new CustomException(Resources.Globalization.ValidationBecauseOfEndDateIsLessThanCreationDateText);
                    }
                }
            }

            return(View(AssigningVM));
        }