Example #1
0
        public Sender(SyncOptions syncOptions, ILogger logger)
        {
            _logger                  = logger;
            _pathScanner             = new PathScanner(this);
            _sentReporter            = new SentReporter(_logger);
            _srcPath                 = Path.GetFullPath(syncOptions.SourcePath);
            _cancellationTokenSource = new CancellationTokenSource();

            if (!Directory.Exists(_srcPath))
            {
                throw new SyncException($"Invalid source path: {_srcPath}");
            }

            _excludeList = new FileMaskList();
            _excludeList.SetList(syncOptions.ExcludeList);

            _changes      = new Dictionary <string, FsSenderChange>();
            _needToScan   = true;
            _agentStarter = AgentStarter.Create(syncOptions, _logger);
            _logger.Log($"Sync {syncOptions}");
            _applyRequest = new ApplyRequest(_logger)
            {
                BasePath = _srcPath,
            };
            UpdateHasWork();
        }
Example #2
0
        public void SetUp()
        {
            _opportunityId = _fixture.Create <int>();
            _accountId     = _fixture.Create <long>();
            _request       = _fixture.Create <ApplyRequest>();
            _result        = _fixture.Create <CreateApplicationCommandResult>();

            _mediator = new Mock <IMediator>();

            _controller = new OpportunityController(Mock.Of <ILogger <OpportunityController> >(), _mediator.Object);

            _mediator.Setup(x => x.Send(It.Is <CreateApplicationCommand>(command =>
                                                                         command.PledgeId == _opportunityId &&
                                                                         command.EmployerAccountId == _accountId &&
                                                                         command.EncodedAccountId == _request.EncodedAccountId &&
                                                                         command.Details == _request.Details &&
                                                                         command.StandardId == _request.StandardId &&
                                                                         command.NumberOfApprentices == _request.NumberOfApprentices &&
                                                                         command.StartDate == _request.StartDate &&
                                                                         command.HasTrainingProvider == _request.HasTrainingProvider &&
                                                                         command.Sectors.Equals(_request.Sectors) &&
                                                                         command.Locations.Equals(_request.Locations) &&
                                                                         command.AdditionalLocation == _request.AdditionalLocation &&
                                                                         command.SpecificLocation == _request.SpecificLocation &&
                                                                         command.FirstName == _request.FirstName &&
                                                                         command.LastName == _request.LastName &&
                                                                         command.EmailAddresses.Equals(_request.EmailAddresses) &&
                                                                         command.BusinessWebsite == _request.BusinessWebsite &&
                                                                         command.UserId == _request.UserId &&
                                                                         command.UserDisplayName == _request.UserDisplayName
                                                                         ), It.IsAny <CancellationToken>()))
            .ReturnsAsync(_result);
        }
Example #3
0
        public async Task <IActionResult> Apply(long accountId, int opportunityId, [FromBody] ApplyRequest request)
        {
            var result = await _mediator.Send(new CreateApplicationCommand
            {
                EmployerAccountId   = accountId,
                PledgeId            = opportunityId,
                EncodedAccountId    = request.EncodedAccountId,
                Details             = request.Details,
                StandardId          = request.StandardId,
                NumberOfApprentices = request.NumberOfApprentices,
                StartDate           = request.StartDate,
                HasTrainingProvider = request.HasTrainingProvider,
                Sectors             = request.Sectors,
                Locations           = request.Locations,
                AdditionalLocation  = request.AdditionalLocation,
                SpecificLocation    = request.SpecificLocation,
                FirstName           = request.FirstName,
                LastName            = request.LastName,
                EmailAddresses      = request.EmailAddresses,
                BusinessWebsite     = request.BusinessWebsite,
                UserId          = request.UserId,
                UserDisplayName = request.UserDisplayName
            });

            return(Created($"/accounts/{accountId}/opportunities/{opportunityId}/apply", (ApplyResponse)result));
        }
Example #4
0
 public static int VacationTotalLength(this ApplyRequest model)
 {
     if (model?.StampReturn == null || !model.StampLeave.HasValue)
     {
         return(0);
     }
     return(model.StampReturn.Value.Subtract(model.StampLeave.Value).Days + 1);
 }
 public async Task <DistributionTask> Apply([FromBody] ApplyRequest request)
 {
     operationHelper.Connect(connectionSettings, request.EnvironmentInfoId);
     return(await new DistributionService(operationHelper).ApplyAsync(
                request.Id,
                request.ApplyDate,
                request.IsIndefinitePeriod,
                request.IsUserCreateDateBeforeApproval));
 }
Example #6
0
 public Packet Run(Packet request)
 {
     try
     {
         return(request switch
         {
             ScanRequest _ => RunScan(),
             InitRequest initRequest => RunInit(initRequest),
             ApplyRequest applyRequest => RunApply(applyRequest),
             _ => throw new SyncException($"Unknown command {request.GetType()}"),
         });
     }
Example #7
0
        void IDataSender.ApplyUserReq(ApplyRequest request)
        {
            Datagram datagram = new Datagram
            {
                DataType    = DatagramType.Login,
                MessageType = LoginMessageType.ApplyUserReq,
                Datas       = request.ToByteArray()
            };

            if (!Send(datagram))
            {
                RunningDatas.InfoNotify("网络连接失败 请重启软件后重试");
            }
        }
Example #8
0
        /// <summary>
        /// 责任链模式
        /// </summary>
        public static void ChainOfResponsibility()
        {
            var approver = new Manager("经理");

            approver.NextApprover = new President("总经理");

            Console.WriteLine("开始5000块钱的东西");
            var request = new ApplyRequest(5000);

            approver.Approve(request);

            Console.WriteLine("开始审批20000块钱的东西");
            request = new ApplyRequest(20000);
            approver.Approve(request);
        }
Example #9
0
        public static string RequestInfoVacationDescription(this ApplyRequest model)
        {
            if (model == null)
            {
                return("休假申请无效");
            }
            var othersVacation            = model.AdditialVacations.Sum(a => a.Length);
            var othersVacationDescription = new StringBuilder();

            foreach (var ov in model.AdditialVacations)
            {
                othersVacationDescription.Append(ov.Name).Append(ov.Length).Append("天 ");
            }
            return($"共计{model.VacationTotalLength()}天(其中{model.VacationType}{model.VacationLength}天,路途{model.OnTripLength}天 {othersVacationDescription.ToString()})");
        }
        public object ApplyAllGroupPermissions(ApplyRequest request)
        {

            // Variables.
            var failureReason = default(string);
            var userService = Services.UserService;
            var user = userService.GetUserById(request.UserId);
            var success = true;


            // User found?
            if (user == null)
            {
                success = false;
                failureReason = UserNotFound;
            }


            // Copy permissions.
            if (success)
            {
                _userTypePermissionsService.CopyPermissionsForSingleUser(user);
            }


            // Indicate success or failure.
            if (success)
            {
                return new
                {
                    Success = true
                };
            }
            else
            {
                return new
                {
                    Success = false,
                    Reason = failureReason
                };
            }

        }
        public object ApplyAllGroupPermissions(ApplyRequest request)
        {
            // Variables.
            var failureReason = default(string);
            var userService   = Services.UserService;
            var user          = userService.GetUserById(request.UserId);
            var success       = true;


            // User found?
            if (user == null)
            {
                success       = false;
                failureReason = UserNotFound;
            }


            // Copy permissions.
            if (success)
            {
                _userTypePermissionsService.CopyPermissionsForSingleUser(user);
            }


            // Indicate success or failure.
            if (success)
            {
                return(new
                {
                    Success = true
                });
            }
            else
            {
                return(new
                {
                    Success = false,
                    Reason = failureReason
                });
            }
        }
        public void AddApply(Guid sender, ApplyRequest request)
        {
            VisitTime = DateTime.Now;
            Invaild   = false;

            string applicat = IKXTServer.DataConvert.GetString(sender);

            JArray array = Json["Applies"] as JArray;

            for (int i = 0; i < array.Count; ++i)
            {
                JObject obj = array[i] as JObject;
                if (obj["applicat"].ToString() == applicat)
                {
                    if (obj["type"].ToString() == "group")
                    {
                        if (obj["group"].ToString() == request.TargetID)
                        {
                            array.RemoveAt(i);
                            break;
                        }
                    }
                    else
                    {
                        array.RemoveAt(i);
                        break;
                    }
                }
            }

            array.Add(new JObject
            {
                { "type", request.TargetType == ApplyRequest.TargetType_Friend ? "friend" : "group" },
                { "group", request.TargetID },
                { "applicat", applicat },
                { "message", request.Message },
                { "time", request.ApplyTime.ToString() }
            });
        }
        public void AddApply(Guid sender, string target, ApplyRequest request)
        {
            try
            {
                if (!Cache.TryGetValue(target, out KXTUserAppliesFile file))
                {
                    file = new KXTUserAppliesFile
                           (
                        RootPath + "\\" + target + ".json"
                           );
                    Cache.TryAdd(target, file);
                }

                file.AddApply(sender, request);

                file.Flush();
            }
            catch
            {
                Notify(LogLevel.Warning, "用户申请数据操作异常:文件异常");
            }
        }
Example #14
0
        public async Task <ActionResult <int> > CreateApply(ApplyRequest request)
        {
            var stu_id = Int32.Parse(User.Identity.Name);

            if (await UserAccessor.CheckRole(stu_id) != Role.Student)
            {
                return(BadRequest(new { message = "CreateApply is for students." }));
            }
            int check_apply = await ApplyAccessor.CheckApply(stu_id, request.work_id);

            if (check_apply == 1)
            {
                // 已通过改工作的申请
                return(Ok(-21));
            }
            else if (check_apply == 2)
            {
                // 正在申请该工作
                return(Ok(-22));
            }
            var temp = _mapper.Map <ApplyEntity>(request);

            temp.student_id = stu_id;
            temp.teacher_id = await WorkAccessor.GetTeacher(temp.work_id);

            temp.resume_id = await ResumeAccessor.GetResume(temp.student_id);

            if (temp.resume_id == -1)
            {
                return(Ok(-10));
            }
            var ans = await ApplyAccessor.Create(temp);

            if (ans > 0)
            {
                return(Ok(ans));
            }
            return(Ok(-1));
        }
Example #15
0
        private Packet Apply(ApplyRequest req)
        {
            Log(0, "Outlook更新開始");
            var res = new ApplyResponse()
            {
                CalendarItems = new CalendarItemCollection()
            };

            foreach (var calendarItem in req.CalendarItems)
            {
                try
                {
                    if (calendarItem.Changed == false)
                    {
                        res.CalendarItems.Add(calendarItem);
                    }
                    else if (calendarItem.Cancelled)
                    {
                        DeleteItem(calendarItem);
                    }
                    else if (calendarItem.ID == string.Empty)
                    {
                        CreateItem(calendarItem);
                        res.CalendarItems.Add(calendarItem);
                    }
                    else
                    {
                        UpdateItem(calendarItem);
                        res.CalendarItems.Add(calendarItem);
                    }
                }
                catch (Exception ex)
                {
                    Log(0, ex);
                }
            }
            Log(0, "Outlook更新完了");
            return(res);
        }
        public ApplyRequest SubmitRequestAsync(User targetUser, ApplyRequestVdto model)
        {
            if (model == null)
            {
                return(null);
            }
            var vacationInfo = usersService.VacationInfo(targetUser, model?.StampLeave?.Year ?? DateTime.Now.XjxtNow().Year, model.IsPlan ? MainStatus.IsPlan : MainStatus.Normal);

            if (vacationInfo.Description == null || vacationInfo.Description.Contains("无休假"))
            {
                throw new ActionStatusMessageException(new ApiResult(ActionStatusMessage.ApplyMessage.Request.HaveNoVacationSinceExcept, vacationInfo.Description ?? "休假信息生效中", true));
            }
            model = CaculateVacation(model);
            var type = model.VacationType;

            if (type?.Disabled ?? true)
            {
                throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.InvalidVacationType);
            }
            if (type.Primary)
            {
                // 剩余天数判断
                if (model.VacationLength > vacationInfo.LeftLength)
                {
                    throw new ActionStatusMessageException(new ApiResult(ActionStatusMessage.ApplyMessage.Request.NoEnoughVacation, $"超出{model.VacationLength - vacationInfo.LeftLength}天", true));
                }
                // 剩余路途次数判断
                if (model.OnTripLength < 0)
                {
                    throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.Default);
                }
            }
            // 不允许未休完正休假前休某些假
            else if (!type.AllowBeforePrimary && vacationInfo.LeftLength > 0)
            {
                throw new ActionStatusMessageException(new ApiResult(ActionStatusMessage.ApplyMessage.Request.BeforePrimaryNotAllow, $"({type.Alias})", true));
            }
            // 路途判断
            if (type.CanUseOnTrip)
            {
                if (model.OnTripLength > 0 && vacationInfo.MaxTripTimes <= vacationInfo.OnTripTimes)
                {
                    throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.TripTimesExceed);
                }
            }
            else
            {
                model.OnTripLength = 0;
            }
            // 休假天数范围判断
            if (model.VacationLength < type.MinLength)
            {
                throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.VacationLengthTooShort);
            }
            if (model.VacationLength > type.MaxLength)
            {
                throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.VacationLengthTooLong);
            }
            // 福利假判断
            if (!type.CaculateBenefit)
            {
                model.VacationAdditionals = null;
            }
            // 跨年假判断
            if (type.NotPermitCrossYear)
            {
                if (model.StampReturn.Value.Year != model.StampLeave.Value.Year)
                {
                    throw new ActionStatusMessageException(ActionStatusMessage.ApplyMessage.Request.NotPermitCrossYear);
                }
            }

            var r = new ApplyRequest()
            {
                OnTripLength        = model.OnTripLength,
                Reason              = model.Reason,
                StampLeave          = model.StampLeave,
                StampReturn         = model.StampReturn,
                VacationLength      = model.VacationLength,
                VacationPlace       = model.VacationPlace,
                VacationPlaceName   = model.VacationPlaceName,
                VacationType        = model.VacationType.Name,
                CreateTime          = DateTime.Now,
                ByTransportation    = model.ByTransportation,
                AdditialVacations   = model.VacationAdditionals,
                VacationDescription = vacationInfo.Description
            };

            context.ApplyRequests.Add(r);
            context.SaveChanges();
            return(r);
        }