public List <string> SendWorkHour(WorkHourJson workHourJson)//JObject jsonObject
        {
            UnitOfWork       uow         = new UnitOfWork();
            UserManager      userManager = new UserManager(uow);
            TimeSheetManager WHM         = new TimeSheetManager(uow);
            User             currUser    = new UserHelper().GetCurrent();
            Validations      validate    = new Validations();
            var           WorkHour       = WHM.GetByID(workHourJson.ID);
            List <string> result         = new List <string>();

            result = validate.ValidateRegisterWorkHour(WorkHour);

            if (result.Count() == 0)
            {
                if (WorkHour.WorkflowStage.IsFirst)
                {
                    WHM.SendWorkHour(WorkHour);
                    HistoryUtilities.RegisterSendHistory(WorkHour);
                    result.Add("ارسال کارکرد با موفقیت انجام گردید");
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        public IActionResult approveDeny(vmApproveDenyRequest request)
        {
            try
            {
                if (!this.MainChecks(request.ver, out string error))
                {
                    throw new Exception(error);
                }
                if (request.approveIds.Count == 0 && request.denyIds.Count == 0)
                {
                    throw new Exception("موردی برای تایید یا رد مشخص نشده است");
                }

                var currentUser = new UserHelper().GetCurrent(this._uow, this.UserName);
                TimeSheetManager timeSheetManager = new TimeSheetManager(this._uow);


                if (request.type == 10)
                {
                    //workhour
                    foreach (var itemForApprove in request.approveIds)
                    {
                        var item = timeSheetManager.GetByID(itemForApprove.id);
                        approveDenyWorkhour(true, currentUser, timeSheetManager, item, itemForApprove.description);
                    }
                    foreach (var itemForDeny in request.denyIds)
                    {
                        var item = timeSheetManager.GetByID(itemForDeny.id);
                        approveDenyWorkhour(false, currentUser, timeSheetManager, item, itemForDeny.description);
                    }
                }

                if (request.type == 1)
                {
                    //ماموریت ساعتی
                    HourlyMissionManager dlm = new HourlyMissionManager(this._uow);

                    foreach (var itemForApprove in request.approveIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForApprove.id);
                        approveDenyHourlyMission(true, currentUser, timeSheetManager, dlm, dailyLeave, itemForApprove.description);
                    }

                    foreach (var itemForDeny in request.denyIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForDeny.id);
                        approveDenyHourlyMission(false, currentUser, timeSheetManager, dlm, dailyLeave, itemForDeny.description);
                    }

                    this._uow.SaveChanges();
                }
                if (request.type == 2)
                {
                    //مرخصی ساعتی
                    HourlyLeaveManager dlm = new HourlyLeaveManager(this._uow);

                    foreach (var itemForApprove in request.approveIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForApprove.id);
                        approveDenyHourlyLeave(true, currentUser, timeSheetManager, dlm, dailyLeave, itemForApprove.description);
                    }

                    foreach (var itemForDeny in request.denyIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForDeny.id);
                        approveDenyHourlyLeave(false, currentUser, timeSheetManager, dlm, dailyLeave, itemForDeny.description);
                    }

                    this._uow.SaveChanges();
                }
                if (request.type == 3)
                {
                    //مرخصی روزانه
                    DailyLeaveManager dlm = new DailyLeaveManager(this._uow);

                    foreach (var itemForApprove in request.approveIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForApprove.id);
                        approveDenyDailyLeave(true, currentUser, timeSheetManager, dlm, dailyLeave, itemForApprove.description);
                    }

                    foreach (var itemForDeny in request.denyIds)
                    {
                        var dailyLeave = dlm.GetByID(itemForDeny.id);
                        approveDenyDailyLeave(false, currentUser, timeSheetManager, dlm, dailyLeave, itemForDeny.description);
                    }

                    this._uow.SaveChanges();
                }



                return(Ok(new { message = "عملیات تایید با موفقیت انجام گردید" }));
            }
            catch (Exception ex)
            {
                return(this.ReturnError(ex, "خطا در ذخیره تایید و رد ها"));
            }
        }