public void ApproveWorkHour(WorkHour wh) { var stagecontroller = new StageController(_UOW); stagecontroller.SetNextStageID(wh); _UOW.SaveChanges(); }
public List <string> ValidateRegisterWorkHour(WorkHour workHour) { List <string> result = new List <string>(); if (workHour == null) { result.Add("کارکرد خالی میباشد"); } if (workHour.Hours <= 0) { result.Add("ساعت کارکرد خالی میباشد"); } if (workHour.Date == null) { result.Add("تاریخ کارکرد خالی میباشد"); } if (workHour.EmployeeID == null) { result.Add("کاربر خالی میباشد"); } if (workHour.WorkflowStageID == null) { result.Add("مرحله کارکرد خالی میباشد"); } if (workHour.TaskID == null) { result.Add("وظیفه کارکرد خالی میباشد"); } if (workHour.ProjectId == null) { result.Add("پروژه کارکرد خالی میباشد"); } return(result); }
public void DenyWorkHour(WorkHour wh) { var stagecontroller = new StageController(_UOW); stagecontroller.SetPreviusStage(wh); _UOW.SaveChanges(); }
public void SendWorkHour(WorkHour workHour) { StageController stage = new StageController(_UOW); stage.SetNextStageID(workHour); _UOW.WorkHourRepository.Edit(workHour); _UOW.SaveChanges(); }
/// <summary> /// WorkHour متد مشخص کردن مدیر پروژه بودن کاربر جاری توسط آبجکت /// </summary> /// <param name="workHour"></param> /// <returns></returns> public bool IsUserProjectMnager(WorkHour workHour, string userName) { var userManager = new UserManager(_UOW); var projectManager = new ProjectManager(_UOW); var currentUser = userManager.GetByUserName(userName); var project = projectManager.GetByID(workHour.ProjectId); if (currentUser.ID == project.OwnerID) { return(true); } else { return(false); } }
/// <summary> /// WorkHour متد مشخص کردن مدیر ستادی بودن کاربر جاری توسط آبجکت /// </summary> /// <param name="workHour"></param> /// <returns></returns> public bool IsUserOrganisationMnager(WorkHour workHour, string userName) { var userManager = new UserManager(_UOW); var orgManager = new OrgUnitManager(_UOW); var currentUser = userManager.GetByUserName(userName); var orgId = userManager.GetByID(workHour.EmployeeID).OrganizationUnit.ID; var orgmanager = orgManager.GetByID(orgId); if (orgmanager.ManagerID == currentUser.ID) { return(true); } else { return(false); } }
public void SaveWorkHour(WorkHour workHour) { var erros = new Validations().ValidateRegisterWorkHour(workHour); if (erros.Any()) { throw new ValidationException(erros); } workHour.PreviousStage = workHour.WorkflowStageID; if (_UOW.WorkHourRepository.IsExistById(workHour.ID)) { EditWorkHour(workHour); } else { AddWorkHour(workHour); } _UOW.SaveChanges(); }
/// <summary> ///وضعیت تایید ساعت کار با توجه به کاربر جاری /// </summary> /// <param name="workHour"></param> /// <returns>" "</returns> /// <returns>"Approve "</returns> /// <returns>"NotApprove "</returns> /// <returns>"Nothing "</returns> public string ApprovementStatus(WorkHour workHour, string userName) { var result = string.Empty; var workflowManager = new WorkflowManager(_UOW); var stage = workflowManager.GetByID(workHour.WorkflowStageID); if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order == 2) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order == 3) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order > 3) { return("Approve"); } if (IsUserProjectMnager(workHour, userName) && stage.Order == 2) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && stage.Order >= 3) { return("Approve"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order <= 2) { return("Nothing"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order == 3) { return("NotApprove"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order > 3) { return("Approve"); } return(result); }
/// <summary> ///وضعیت تایید ساعت کار با توجه به کاربر جاری /// </summary> /// <param name="workHour"></param> /// <returns>" "</returns> /// <returns>"Approve "</returns> /// <returns>"NotApprove "</returns> /// <returns>"Nothing "</returns> public string ApprovementStatus(WorkHour workHour, string userName) { var result = string.Empty; var workflowManager = new WorkflowManager(_UOW); var stage = workflowManager.GetByID(workHour.WorkflowStageID); var isProjectManager = IsUserProjectMnager(workHour, userName); var isOrganizationManager = IsUserOrganisationMnager(workHour, userName); if (!isProjectManager && !isOrganizationManager) { return("Nothing"); } if (stage.Order > 3) { return("Approve"); } if (stage.Order < 2) { return("Nothing"); } // الان یا 2 است یا 3 if (isProjectManager && isOrganizationManager) { return("NotApprove"); } if (isProjectManager && stage.Type == "ProjectManager") { return("NotApprove"); } if (isOrganizationManager && stage.Type == "Manager") { return("NotApprove"); } return("Approve"); if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order == 2) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order == 3) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && IsUserOrganisationMnager(workHour, userName) && stage.Order > 3) { return("Approve"); } if (IsUserProjectMnager(workHour, userName) && stage.Order == 2) { return("NotApprove"); } if (IsUserProjectMnager(workHour, userName) && stage.Order >= 3) { return("Approve"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order <= 2) { return("Nothing"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order == 3) { return("NotApprove"); } if (IsUserOrganisationMnager(workHour, userName) && stage.Order > 3) { return("Approve"); } return(result); }
void EditWorkHour(WorkHour entity) { _UOW.WorkHourRepository.Edit(entity); }
void AddWorkHour(WorkHour entity) { _UOW.WorkHourRepository.Add(entity); }
public void SetNewStage(WorkHour workHour) { _UOW.WorkHourRepository.SetNewStage(workHour); }
public List <string> ValidateSendrWorkHour(WorkHour workHour, bool isOpen, bool mustHaveHozoor, int registeredWorkhourMinuteThisDate, int?hozoor) { List <string> result = new List <string>(); if (workHour == null) { result.Add("کارکرد خالی میباشد"); } if (workHour.Date == DateTime.MinValue) { result.Add("تاریخ کارکرد خالی میباشد"); } if (result.Count > 0) { return(result); } if (!isOpen) { result.Add($"تایم شیت در این تاریخ {DateUtility.GetPersianDate(workHour.Date)} بسته است. امکان تغییر نمی باشد"); } else { if (mustHaveHozoor) { if (!hozoor.HasValue && hozoor == 0) { result.Add($"در این تاریخ {DateUtility.GetPersianDate(workHour.Date)} حضور یافت نشد. امکان ارسال کارکرد نمی باشد"); } if (hozoor.HasValue && registeredWorkhourMinuteThisDate > hozoor) { result.Add("کارکرد بیش از حضور. امکان ارسال کارکرد نمی باشد"); } } } if (result.Count > 0) { return(result); } if (workHour.Minutes <= 0) { result.Add("ساعت کارکرد خالی میباشد"); } if (workHour.EmployeeID == Guid.Empty) { result.Add("کاربر خالی میباشد"); } if (workHour.WorkflowStageID == Guid.Empty) { result.Add("مرحله کارکرد خالی میباشد"); } if (workHour.TaskID == Guid.Empty) { result.Add("وظیفه کارکرد خالی میباشد"); } if (workHour.ProjectId == Guid.Empty) { result.Add("پروژه کارکرد خالی میباشد"); } return(result); }