public ResultDTO CreateDepartment(BusinessEntities.DepartmentEntity departmentEntity)
        {
            //CodeGenerator code = new CodeGenerator();

            //var res = String.Empty;
            //var result = _unitOfWork.DepartmentRepository.GetMany(x => x.DepartmentId == departmentEntity.DepartmentId);
            //if (result.Count() > 0)
            //{
            //    res = (from c in result
            //           orderby c.DepartmentId descending
            //           select c).Take(1).First().DepartmentCode;
            //}
            //var last = res != null ? code.NumberFromExcelColumn(res) : 0;
            //var DepartmentCode = code.GenerateSequence(last);

            var result = new ResultDTO {
                IsSuccess = false
            };

            var isExist = _unitOfWork.DepartmentRepository.GetManyQueryable(c => c.DepartmentName.ToLower() == departmentEntity.DepartmentName.ToLower() && c.CompanyId == departmentEntity.CompanyId).Count() > 0;

            if (!isExist)
            {
                using (var scope = new TransactionScope())
                {
                    var department = new DataModel.Department
                    {
                        DepartmentName = departmentEntity.DepartmentName,
                        DepartmentCode = departmentEntity.DepartmentCode,
                        CompanyId      = departmentEntity.CompanyId,
                        ParentId       = departmentEntity.ParentId,
                        IsActive       = true,
                        CreatedBy      = departmentEntity.CreatedBy,
                        CreatedOn      = DateTime.Now,
                        ModifiedBy     = departmentEntity.CreatedBy,
                        ModifiedOn     = DateTime.Now,
                    };
                    _unitOfWork.DepartmentRepository.Insert(department);
                    _unitOfWork.Save();
                    scope.Complete();

                    result.IsSuccess = true;
                    result.Message   = "Inserted Department Successfully";
                }
            }
            else
            {
                result.IsSuccess = false;
                result.Message   = "Department name already exist";
            }
            return(result);
        }
        public ResultDTO UpdateDepartment(int DepartmentId, BusinessEntities.DepartmentEntity departmentEntity)
        {
            var result = new ResultDTO {
                IsSuccess = false
            };

            if (departmentEntity != null)
            {
                var isExist = _unitOfWork.DepartmentRepository.GetManyQueryable(c => c.DepartmentName.ToLower() == departmentEntity.DepartmentName.ToLower() && c.DepartmentCode == departmentEntity.DepartmentCode && c.CompanyId == departmentEntity.CompanyId).Count() > 0;
                if (!isExist)
                {
                    using (var scope = new TransactionScope())
                    {
                        var department = _unitOfWork.DepartmentRepository.GetByID(DepartmentId);
                        if (departmentEntity != null)
                        {
                            department.DepartmentId   = departmentEntity.DepartmentId;
                            department.DepartmentName = departmentEntity.DepartmentName;
                            department.DepartmentCode = departmentEntity.DepartmentCode;
                            department.CompanyId      = departmentEntity.CompanyId;
                            department.ParentId       = departmentEntity.ParentId;
                            department.IsActive       = true;
                            department.ModifiedBy     = departmentEntity.ModifiedBy;
                            department.ModifiedOn     = DateTime.Now;
                            _unitOfWork.DepartmentRepository.Update(department);
                            _unitOfWork.Save();
                            scope.Complete();

                            result.IsSuccess = true;
                            result.Message   = "Updated Department Successfully";
                        }
                    }
                }
                else
                {
                    result.IsSuccess = false;
                    result.Message   = "Designation name already exist";
                }
            }
            return(result);
        }