public async Task <ResponseMessage> ConfirmBill(UserInfo user, ConfirmRequest request)
        {
            ResponseMessage r  = new ResponseMessage();
            var             ci = await _Store.Get(request.Id);

            if (ci == null)
            {
                r.Code    = "404";
                r.Message = "报销单不存在";
                return(r);
            }
            bool hp = await _permissionExpansion.HavePermission(user.Id, PERMISSION_BXDQR, ci.ReimburseDepartment);

            if (!hp)
            {
                r.Code    = "403";
                r.Message = "没有该报销单的操作权限";
                return(r);
            }

            if (request.Status == (int)ChargeStatus.Confirm)
            {
                await _Store.UpdateBillStatus(_mapper.Map <SimpleUser>(user), request.Id, (int)BillStatusEnum.Confirm, request.Message, ModifyTypeEnum.ConfirmBill, ModifyTypeConstans.ConfirmBill);
            }
            else if (request.Status == (int)ChargeStatus.Reject)
            {
                await _Store.UpdateBillStatus(_mapper.Map <SimpleUser>(user), request.Id, (int)BillStatusEnum.Reject, request.Message, ModifyTypeEnum.RejectBill, ModifyTypeConstans.RejectBill);
            }

            return(r);
        }
Example #2
0
        public void confirming_a_reserve()
        {
            //get search result from cache if exits, to avoid sending redundant search request, if not, get it
            if (!_fixtures.Cache.TryGetValue("_searchResults_test", out SearchResponse searchResult))
            {
                searching_for_two_valid_destinations();
                _fixtures.Cache.TryGetValue("_searchResults_test", out searchResult);
            }

            var searchResultItem = searchResult.Results.First();

            var reqReserve = new ReserveRequest(
                "CDGT01",
                DateTime.Now.AddDays(1),
                "CDGT01",
                DateTime.Now.AddDays(2),
                searchResultItem.ContractId,
                searchResultItem.CarCategoryCode,
                searchResultItem.RateId,
                "*****@*****.**",
                new Driver("+989372346281", "MR", "Ali", "Bordbar", "2281206696", "Tehran"));
            var reserveResponse = _fixtures.CarRent.Reserve(reqReserve).Result;

            var confirmRequest  = new ConfirmRequest(reserveResponse.Results.ReserveId);
            var confirmResponse = _fixtures.CarRent.Confirm(confirmRequest).Result;

            confirmResponse.Errors.Should().BeNullOrEmpty();
        }
Example #3
0
        public HttpResponseMessage Put(ConfirmRequest request)
        {
#if DEBUG
            if (request.RequestId == 0)
            {
                throw new Exception("При подтверждении должен быть указан идентификатор обновления");
            }
#endif
            //из-за изменения схемы подтверждения обновления при переходе с версии на версию идентификатор обновления
            //не передается
            if (request.RequestId == 0)
            {
                return(new HttpResponseMessage(HttpStatusCode.OK));
            }
            var log = Session.Get <RequestLog>(request.RequestId);
            //если уже подтверждено значит мы получили информацию об импортированных заявках
            if (log.IsConfirmed)
            {
                log.Error += request.Message;
            }
            else
            {
                //записываем информацию о запросе что бы в случае ошибки повторить попытку
                var failsafe = Path.Combine(Config.FailsafePath, log.Id.ToString());
                File.WriteAllText(failsafe, JsonConvert.SerializeObject(request));
                var task = RequestLog.RunTask(Session, x => Confirm(x, log.Id, Config, request));
                if (task.IsFaulted)
                {
                    return(new HttpResponseMessage(HttpStatusCode.InternalServerError));
                }
            }

            return(new HttpResponseMessage(HttpStatusCode.OK));
        }
Example #4
0
        private void DelAttachmentRequest(object param)
        {
            CommunicationAttachment attachment = param as CommunicationAttachment;

            if (attachment != null && ConfirmRequest != null)
            {
                ConfirmRequest.Raise(
                    new ConditionalConfirmation {
                    Content = "Remove?".Localize(), Title = "Action confirmation".Localize(null, LocalizationScope.DefaultCategory)
                },
                    x =>
                {
                    if (x.Confirmed)
                    {
                        OnUIThread(() =>
                        {
                            attachment.State = CommunicationItemState.Deleted;
                            ModifiedParentViewModel();
                            AttacmentsCollection.Refresh();
                            State = CommunicationItemState.Modified;
                        });
                    }
                });
            }
        }
Example #5
0
        public async Task <ConfirmResponse> ConfirmUid(ConfirmRequest confirmRequest)
        {
            ConfirmResponse response = new ConfirmResponse();

            try
            {
                foreach (var item in confirmRequest.Uids)
                {
                    var result = await _prescriptionBarcodeRepository.FirstOrDefault(a => a.ReCheckCode == item.ReCheckCode);

                    if (result != null)
                    {
                        result.PrescriptionBarcodeStatusId = (int)PrescriptionBarcodeStatusEnum.FinalConfirmRequest;
                        await _prescriptionBarcodeRepository.Update(result);
                    }
                }
                response.ToIsSuccessUcid <ConfirmResponse>();
                response.resCode    = response.ErrorCode;
                response.resMessage = response.resMessage;
                return(response);
            }
            catch (Exception ex)
            {
                _logService.LogText(ex.Message);
                response.ToApiError <ConfirmResponse>();
                return(response);
            }
        }
Example #6
0
        public async Task <ResponseMessage> Confirm(UserInfo user, ConfirmRequest request)
        {
            ResponseMessage r  = new ResponseMessage();
            var             ci = await _Store.Get(request.Id);

            if (ci == null)
            {
                r.Code    = "404";
                r.Message = "预借款不存在";
                return(r);
            }

            await checkPermission(r, user.Id, PERMISSION_YJKQR, ci.ReimburseDepartment);

            if (!r.IsSuccess())
            {
                return(r);
            }

            if (request.Status == (int)ChargeStatus.Confirm)
            {
                await _Store.UpdateStatus(_mapper.Map <SimpleUser>(user), request.Id, (int)ChargeStatus.Confirm, request.Message, ModifyTypeEnum.Confirm, ModifyTypeConstans.Confirm);
            }
            else if (request.Status == (int)ChargeStatus.Reject)
            {
                await _Store.UpdateStatus(_mapper.Map <SimpleUser>(user), request.Id, (int)ChargeStatus.Reject, request.Message, ModifyTypeEnum.Reject, ModifyTypeConstans.Reject);
            }
            return(r);
        }
        public HttpResponseMessage Put(ConfirmRequest confirm)
        {
            //теоретически здесь лимит может стать меньше нуля, игнорируем эту возможность как незначительную
            Session.CreateSQLQuery(@"
update Orders.OrdersHead o
join Logs.AcceptedOrderLogs l on l.OrderId = o.RowId
set o.Deleted = 0
where l.RequestId = :id;

delete l from Logs.AcceptedOrderLogs l
where l.RequestId = :id;

update OrderSendRules.SmartOrderLimits l
join Logs.PendingLimitLogs p on p.LimitId = l.Id
set l.Value = l.Value - p.Value, l.ToDay = l.ToDay - p.ToDay
where p.RequestId = :id;

delete l from Logs.PendingLimitLogs l
where l.RequestId = :id;")
            .SetParameter("id", confirm.RequestId)
            .ExecuteUpdate();
            var job = Session.Get <RequestLog>(confirm.RequestId);

            job?.Confirm(Config, confirm.Message);
            return(new HttpResponseMessage(HttpStatusCode.OK));
        }
        public void Validate_Price_ShouldBeValidated(int price, bool expectedValid)
        {
            var model = new ConfirmRequest {
                Price = price
            };

            AssertValidationResult(request => request.Price, model, expectedValid);
        }
        public void Validate_StartDate_ShouldBeValidated(string startDate, bool expectedValid)
        {
            var model = new ConfirmRequest {
                StartDate = startDate
            };

            AssertValidationResult(request => request.StartDate, model, expectedValid);
        }
        public void Validate_ApprenticeshipHashedId_ShouldBeValidated(string apprenticeshipHashedId, bool expectedValid)
        {
            var model = new ConfirmRequest {
                ApprenticeshipHashedId = apprenticeshipHashedId
            };

            AssertValidationResult(request => request.ApprenticeshipHashedId, model, expectedValid);
        }
        public void Validate_EmployerAccountLegalEntityPublicHashedId_ShouldBeValidated(string employerAccountLegalEntityPublicHashedId, bool expectedValid)
        {
            var model = new ConfirmRequest {
                EmployerAccountLegalEntityPublicHashedId = employerAccountLegalEntityPublicHashedId
            };

            AssertValidationResult(request => request.EmployerAccountLegalEntityPublicHashedId, model, expectedValid);
        }
        public void ThenProviderIdIsValidated(long providerId, bool expectedValid)
        {
            var request = new ConfirmRequest {
                ProviderId = providerId
            };

            AssertValidationResult(x => x.ProviderId, request, expectedValid);
        }
Example #13
0
        public async Task <ConfirmResponse> Confirm(ConfirmRequest request)
        {
            var path     = new Paths.Confirm(_token);
            var response = await
                           _api.CallRemoteApiAsync <ConfirmRequest, ConfirmResponse>(request, path);

            return(response);
        }
        public HttpResponseMessage Confirm(ConfirmRequest confirmRequest)
        {
            try
            {
                if (confirmRequest.Code == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_REQUIRED, new List <string> {
                        "code"
                    })));
                }

                var user = !string.IsNullOrEmpty(confirmRequest.UserId)
                    ? _context.Users.SingleOrDefault(x => x.Id == confirmRequest.UserId)
                    : _context.Users.SingleOrDefault(x => x.Email == confirmRequest.Email);
                if (user == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_NOTFOUND,
                                                               new List <string> {
                        confirmRequest.UserId ?? confirmRequest.Email
                    })));
                }

                if (user.EmailConfirmed)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_CONFIRMED, new List <string> {
                        confirmRequest.UserId
                    })));
                }
                var incoming = AuthUtils.Hash(confirmRequest.Code, user.Salt);

                if (AuthUtils.SlowEquals(incoming, user.SaltedAndHashedEmail))
                {
                    user.EmailConfirmed       = true;
                    user.SaltedAndHashedEmail = null;
                    _context.SaveChanges();
                    return(Request.CreateResponse(HttpStatusCode.OK,
                                                  RespH.Create(RespH.SRV_USER_CONFIRMED, new List <string> {
                        user.Id
                    })));
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              RespH.Create(RespH.SRV_USER_WRONG_CODE,
                                                           new List <string> {
                    confirmRequest.UserId ?? confirmRequest.Code
                })));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              RespH.Create(RespH.SRV_EXCEPTION, new List <string> {
                    ex.ToString()
                })));
            }
        }
Example #15
0
 public AdApi.Shared.Models.ConfirmAdDto ToConfirmAdDto(ConfirmRequest request)
 {
     return(new AdApi.Shared.Models.ConfirmAdDto()
     {
         Id = request.Id,
         FilePath = request.FilePath,
         Status = request.Status
     });
 }
Example #16
0
        public async Task <bool> ConfirmAsync(ConfirmRequest request)
        {
            var dto      = _mapper.ToConfirmAdDto(request);
            var json     = JsonConvert.SerializeObject(dto);
            var response = await _client.PutAsync(new Uri($"{_baseUrl}/confirm"),
                                                  new StringContent(json, Encoding.UTF8, "application/json")).ConfigureAwait(false);

            return(response.StatusCode == HttpStatusCode.OK);
        }
Example #17
0
        public async Task<IResponse> ConfirmAsync(ConfirmRequest confirmRequest)
        {
            Ensure.NotNull(confirmRequest, nameof(confirmRequest));

            IResponse result = await _ped.ConfirmAsync(confirmRequest);
            if (result == null)
                throw new Exception("Cannot confirm payment");

            return result;
        }
Example #18
0
        public void Setup()
        {
            _providerId       = _fixture.Create <long>();
            _apprenticeshipId = _fixture.Create <long>();

            _request = _fixture.Create <ConfirmRequest>();

            _mediator = new Mock <IMediator>();
            _mediator.Setup(x =>
                            x.Send(It.IsAny <ConfirmCommand>(),
                                   It.IsAny <CancellationToken>()))
            .ReturnsAsync(() => new Unit());

            _controller = new ApprenticesController(Mock.Of <ILogger <ApprenticesController> >(), _mediator.Object);
        }
        public WhenAddingNewPriceFixture()
        {
            _fixture       = new Fixture();
            PriceRequest   = _fixture.Create <PriceRequest>();
            PriceViewModel = _fixture.Create <PriceViewModel>();
            ConfirmRequest = _fixture.Create <ConfirmRequest>();

            _modelMapperMock = new Mock <IModelMapper>();
            _modelMapperMock.Setup(x => x.Map <PriceViewModel>(It.IsAny <PriceRequest>()))
            .ReturnsAsync(PriceViewModel);
            _modelMapperMock.Setup(x => x.Map <ConfirmRequest>(It.IsAny <PriceViewModel>()))
            .ReturnsAsync(ConfirmRequest);

            Sut = new ApprenticeController(_modelMapperMock.Object, Mock.Of <ICookieStorageService <IndexRequest> >(), Mock.Of <ICommitmentsApiClient>());
        }
Example #20
0
        public async Task <ResponseMessage> ConfirmBill(UserInfo User, [FromBody] ConfirmRequest request)
        {
            var r = new ResponseMessage();

            try
            {
                r = await _chargeManager.ConfirmBill(User, request);
            }
            catch (Exception e)
            {
                r.Code    = ResponseCodeDefines.ServiceError;
                r.Message = "服务器错误:" + e.Message;
                Logger.Error("确认后补发票失败:\r\n{0}", e.ToString());
            }
            return(r);
        }
        public HttpResponseMessage ResetPassword(ConfirmRequest resetRequest)
        {
            try
            {
                var user = !string.IsNullOrEmpty(resetRequest.UserId)
                    ? _context.Users.SingleOrDefault(x => x.Id == resetRequest.UserId)
                    : _context.Users.SingleOrDefault(x => x.Email == resetRequest.Email);
                if (user == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_NOTFOUND,
                                                               new List <string> {
                        resetRequest.UserId ?? resetRequest.Email
                    })));
                }
                var confirmCode = AuthUtils.RandomNumString(8);
                user.SaltedAndHashedCode = AuthUtils.Hash(confirmCode, user.Salt);
                user.ResetRequested      = true;
                _context.SaveChanges();

                var profile = _context.Profile.AsNoTracking().SingleOrDefault(x => x.Id == user.Id);
                using (MailSender mailSender = new MailSender())
                {
                    var bem = new BaseEmailMessage
                    {
                        Code        = ConstVals.Restore,
                        ToUserId    = user.Id,
                        ToUserName  = profile.FirstName,
                        ToUserEmail = user.Email,
                        ConfirmCode = confirmCode
                    };
                    mailSender.Create(_context, bem);
                }
                return(Request.CreateResponse(HttpStatusCode.OK,
                                              RespH.Create(RespH.SRV_USER_RESET_REQUESTED, new List <string> {
                    user.Id
                })));
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              RespH.Create(RespH.SRV_EXCEPTION, new List <string> {
                    ex.ToString()
                })));
            }
        }
        public override async Task <ProfileReply> ConfirmIdentity(ConfirmRequest request, ServerCallContext context)
        {
            var command = new ConfirmIdentityCommand(
                request.Id.ToAccountId(),
                new ObjectId(request.Confirm.Id),
                request.Confirm.Code,
                request.Identity.ToIdentityKey()
                );

            await _mediator.Send(command, context.CancellationToken);

            var data = await _mediator.Send(new GetAccountByIdQuery(request.Id.ToAccountId()));

            if (data is not null)
            {
                return(data.ToGatewayProfileReply());
            }

            context.Status = new Status(StatusCode.NotFound, ElwarkExceptionCodes.AccountNotFound);
            return(new ProfileReply());
        }
        public async Task <ActionResult> Post(ConfirmRequest doubleCheck)
        {
            try
            {
                if (!doubleCheck.Confirm)
                {
                    _responseContext.SetResponseContext(new StatusResponse("Unauthorized", "Operation not confirmed"));
                    return(_responseContext.GetResponse());
                }

                await _tradeRiskService.RemoveAll();

                _responseContext.SetResponseContext(new StatusResponse("Success", "Portfolio successfully deleted"));
                return(_responseContext.GetResponse());
            }
            catch (Exception ex)
            {
                _responseContext.SetResponseContext(new ErrorResponse <ResetTradesController>(_logger, ex));
                return(_responseContext.GetResponse());
            }
        }
Example #24
0
        public async Task <ResponseMessage> RecordingConfirm(UserInfo user, ConfirmRequest request)
        {
            ResponseMessage r  = new ResponseMessage();
            var             ci = await _Store.Get(request.Id);

            if (ci == null)
            {
                r.Code    = "404";
                r.Message = "还款单不存在";
                return(r);
            }

            await checkPermission(r, user.Id, PERMISSION_YJKFK, ci.ReimburseDepartment);

            if (!r.IsSuccess())
            {
                return(r);
            }


            await _Store.UpdateRecordingStatus(_mapper.Map <SimpleUser>(user), request.Id, request.Status, "", ModifyTypeEnum.RecordingConfirm, ModifyTypeConstans.RecordingConfirm);

            return(r);
        }
 public async Task <ConfirmResponse> confirm([FromBody] ConfirmRequest confirmRequest)
 {
     return(await _prescriptionBarcodeService.ConfirmUid(confirmRequest));
 }
Example #26
0
        public async Task<ITransactionResponse> ConfirmAsync(ConfirmRequest confirmRequest)
        {
            Ensure.NotNull(confirmRequest.TransactionId, nameof(confirmRequest.TransactionId));

            TransactionState transactionState = GetTransactionState(confirmRequest.TransactionId, false);
            if (transactionState == null)
                throw new AsyncPosException(string.Concat(Language.Get("no_trans_error", _languageCode), $" {nameof(confirmRequest.TransactionId)}: ", confirmRequest.TransactionId));

            switch (transactionState.State)
            {
                case TransactionStates.Approved:
                case TransactionStates.Confirming:
                    {
                        if (string.IsNullOrEmpty(transactionState.AuthorizationId))
                            throw new AsyncPosException(Language.Get("cannot_confirm_trans_error", transactionState.Language));

                        if (transactionState.PreAuthorize && transactionState.Amount != confirmRequest.Amount)
                        {
                            if (confirmRequest.Amount <= 0 || confirmRequest.Amount > transactionState.Amount)
                                throw new AsyncPosException(Language.Get("cannot_confirm_invalid_amount_trans_error", transactionState.Language));

                            await ProcessAdjust(transactionState, confirmRequest.Amount);
                        }

                        await ProcessConfirm(transactionState);
                        break;
                    }

                case TransactionStates.Confirmed:
                    if (transactionState.PreAuthorize && transactionState.Amount != confirmRequest.Amount)
                        throw new AsyncPosException(Language.Get("cannot_confirm_invalid_amount_trans_error", transactionState.Language));
                    break;

                default:
                    throw new AsyncPosException(Language.Get("cannot_confirm_trans_error", transactionState.Language));
            }

            if (!transactionState.PreAuthorize)
                return new ConfirmResponse { TransactionId = confirmRequest.TransactionId, Result = ResponseResults.Ok, Text = transactionState.InformationText };

            ConfirmAdjustResponse response = new ConfirmAdjustResponse { TransactionId = confirmRequest.TransactionId, Result = ResponseResults.Ok, Text = transactionState.InformationText };
            FillReceipts(transactionState, response, false);

            return response;
        }
Example #27
0
        private static List<FileInfoX> FillConfirmationList(List<FileInfoX> inList, ConfirmRequest req)
        {
            bool assumeConfirmed = false;
            List<FileInfoX> confirmedList = new List<FileInfoX>();

            foreach (FileInfoX x in inList)
            {
                Console.Write(req.ToString() + " " + x.LocalFileName + " ");
                if (assumeConfirmed)
                {
                    Console.WriteLine();
                    confirmedList.Add(x);
                    continue;
                }

                ConfirmAnswer a = GetAnswer(x.LocalFileName);
                if (a == ConfirmAnswer.Confirm)
                    confirmedList.Add(x);
                else if (a == ConfirmAnswer.Skip)
                    continue;
                else if (a == ConfirmAnswer.SkipAll)
                    break;
                else if (a == ConfirmAnswer.ConfirmAll)
                {
                    assumeConfirmed = true;
                    confirmedList.Add(x);
                }
            }
            return confirmedList;
        }
        public HttpResponseMessage ChangePassword(ConfirmRequest resetRequest)
        {
            try
            {
                User user;
                if (!string.IsNullOrEmpty(resetRequest.UserId) || !string.IsNullOrEmpty(resetRequest.Email))
                {
                    if (resetRequest.Code == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_REQUIRED, new List <string> {
                            "code"
                        })));
                    }

                    user = !string.IsNullOrEmpty(resetRequest.UserId)
                        ? _context.Users.SingleOrDefault(x => x.Id == resetRequest.UserId)
                        : _context.Users.SingleOrDefault(x => x.Email == resetRequest.Email);
                    if (user == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_NOTFOUND,
                                                                   new List <string> {
                            resetRequest.UserId ?? resetRequest.Email
                        })));
                    }


                    var standartAccount =
                        _context.Accounts.SingleOrDefault(
                            x => x.Provider == StandartLoginProvider.ProviderName && x.UserId == user.Id);
                    if (standartAccount == null)
                    {
                        var newstandartaccount = new Account
                        {
                            Id         = SequentialGuid.NewGuid().ToString(),
                            UserId     = user.Id,
                            AccountId  = StandartLoginProvider.ProviderName + ":" + user.Email,
                            Provider   = StandartLoginProvider.ProviderName,
                            ProviderId = user.Email
                        };
                        _context.Accounts.Add(newstandartaccount);
                        _context.SaveChanges();
                    }

                    if (!user.ResetRequested)
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_RESET_NOT_REQUESTED,
                                                                   new List <string> {
                            resetRequest.UserId ?? resetRequest.Email
                        })));
                    }
                    var incoming = AuthUtils.Hash(resetRequest.Code, user.Salt);

                    if (!AuthUtils.SlowEquals(incoming, user.SaltedAndHashedCode))
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_WRONG_CODE,
                                                                   new List <string> {
                            resetRequest.UserId ?? resetRequest.Email, resetRequest.Code
                        })));
                    }

                    user.SaltedAndHashedCode = null;
                    user.EmailConfirmed      = true;
                    user.ResetRequested      = false;
                }
                else
                {
                    // Check Current User
                    var currentUser = User as ServiceUser;
                    if (currentUser == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized, RespH.Create(RespH.SRV_UNAUTH)));
                    }
                    var account = AuthUtils.GetUserAccount(_context, currentUser);
                    if (account == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                                      RespH.Create(RespH.SRV_USER_NOTFOUND, new List <string> {
                            currentUser.Id
                        })));
                    }
                    user =
                        _context.Users.SingleOrDefault(x => x.Id == account.UserId);
                    if (user == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_NOTFOUND,
                                                                   new List <string> {
                            account.UserId
                        })));
                    }

                    var standartAccount =
                        _context.Accounts.SingleOrDefault(
                            x => x.Provider == StandartLoginProvider.ProviderName && x.UserId == user.Id);
                    if (standartAccount == null)
                    {
                        var newstandartaccount = new Account
                        {
                            Id         = SequentialGuid.NewGuid().ToString(),
                            UserId     = user.Id,
                            AccountId  = StandartLoginProvider.ProviderName + ":" + user.Email,
                            Provider   = StandartLoginProvider.ProviderName,
                            ProviderId = user.Email
                        };
                        _context.Accounts.Add(newstandartaccount);
                        _context.SaveChanges();
                    }
                    if (string.IsNullOrWhiteSpace(resetRequest.CurrentPassword))
                    {
                        return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                      RespH.Create(RespH.SRV_USER_REQUIRED, new List <string> {
                            "current password"
                        })));
                    }

                    if (
                        !AuthUtils.SlowEquals(AuthUtils.Hash(resetRequest.CurrentPassword, user.Salt),
                                              user.SaltedAndHashedPassword))
                    {
                        return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                                      RespH.Create(RespH.SRV_LOGIN_INVALID_PASS)));
                    }
                }
                if (string.IsNullOrWhiteSpace(resetRequest.Password))
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_REQUIRED, new List <string> {
                        "password"
                    })));
                }
                if (resetRequest.Password.Length < 8)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_REG_INVALID_PASSWORD, new List <string> {
                        resetRequest.Password
                    })));
                }
                var salt = AuthUtils.GenerateSalt();
                user.Salt = salt;
                user.SaltedAndHashedPassword = AuthUtils.Hash(resetRequest.Password, salt);
                _context.SaveChanges();
                return(Request.CreateResponse(HttpStatusCode.OK,
                                              RespH.Create(RespH.SRV_USER_RESETED, new List <string> {
                    user.Id
                })));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              RespH.Create(RespH.SRV_EXCEPTION, new List <string> {
                    ex.ToString()
                })));
            }
        }
Example #29
0
        public HttpResponseMessage ConfirmCode(ConfirmRequest confirmRequest)
        {
            try
            {
                var respList = new List <string>();
                // Check Current User
                var currentUser = User as ServiceUser;
                if (currentUser == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized, RespH.Create(RespH.SRV_UNAUTH)));
                }
                var account = AuthUtils.GetUserAccount(_context, currentUser);
                if (account == null)
                {
                    respList.Add(currentUser.Id);
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                                  RespH.Create(RespH.SRV_USER_NOTFOUND, respList)));
                }

                var user = _context.Users.SingleOrDefault(x => x.Id == account.UserId);
                if (user == null)
                {
                    respList.Add(account.UserId);
                    return(Request.CreateResponse(HttpStatusCode.Unauthorized,
                                                  RespH.Create(RespH.SRV_USER_NOTFOUND, respList)));
                }
                if (user.PhoneStatus == ConstVals.PConf)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_PHONE_CONFIRMED, new List <string> {
                        user.Id
                    })));
                }
                if (confirmRequest.Code == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_REQUIRED, new List <string> {
                        "code"
                    })));
                }
                var incoming = AuthUtils.Hash(confirmRequest.Code, user.Salt);

                if (!AuthUtils.SlowEquals(incoming, user.SaltedAndHashedSmsCode))
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                                  RespH.Create(RespH.SRV_USER_WRONG_CODE,
                                                               new List <string> {
                        user.Id, confirmRequest.Code
                    })));
                }
                user.SaltedAndHashedSmsCode = null;
                user.PhoneStatus            = ConstVals.PConf;
                user.PhoneCodeRequestedAt   = null;
                _context.MarkAsModified(user);
                _context.SaveChanges();
                return(Request.CreateResponse(HttpStatusCode.OK,
                                              RespH.Create(RespH.SRV_USER_PHONE_CONFIRMED, new List <string> {
                    user.PhoneStatus
                })));
            }
            catch (Exception ex)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest,
                                              RespH.Create(RespH.SRV_EXCEPTION, new List <string> {
                    ex.InnerException.ToString()
                })));
            }
        }
Example #30
0
        public static void Confirm(ISession session, uint requestLogId, Config.Config config, ConfirmRequest request)
        {
            var failsafe = Path.Combine(config.FailsafePath, requestLogId.ToString());

            try {
                new Exporter(session, config, session.Load <RequestLog>(requestLogId)).Confirm(request);
                File.Delete(failsafe);
            }
            catch (Exception) {
                File.Move(failsafe, Path.ChangeExtension(failsafe, ".err"));
                throw;
            }
        }
        public async Task <IActionResult> ChangeEmployerConfirm(long providerId, long apprenticeshipId, [FromBody] ConfirmRequest request)
        {
            try
            {
                await _mediator.Send(new ConfirmCommand
                {
                    ApprenticeshipId     = apprenticeshipId,
                    ProviderId           = providerId,
                    AccountLegalEntityId = request.AccountLegalEntityId,
                    Price             = request.Price,
                    StartDate         = request.StartDate,
                    EndDate           = request.EndDate,
                    EmploymentEndDate = request.EmploymentEndDate,
                    EmploymentPrice   = request.EmploymentPrice,
                    DeliveryModel     = request.DeliveryModel,
                    UserInfo          = request.UserInfo
                });

                return(Ok());
            }
            catch (Exception e)
            {
                _logger.LogError(e, "Error getting change employer - inform, apprenticeship {id}", apprenticeshipId);
                return(BadRequest());
            }
        }
Example #32
0
        public GeneralResponse Confirm(ConfirmRequest request)
        {
            GeneralResponse response = new GeneralResponse();

            Fiscal fiscal = new Fiscal();

            fiscal = _fiscalRepository.FindBy(request.FiscalID);
            Customer customer = _customerRepository.FindBy(fiscal.Customer.ID);

            if (fiscal != null)
            {
                try
                {
                    if (fiscal.MoneyAccount.Has9Digits)
                    {
                        if (request.FiscalReciptNumber < 100000000 || request.FiscalReciptNumber > 999999999)
                        {
                            response.ErrorMessages.Add("شماره رسید نمیتواند کمتر از 9 رقم باشد");
                            return(response);
                        }
                    }

                    fiscal.Confirm     = request.Confirm;
                    fiscal.ConfirmDate = PersianDateTime.Now;

                    fiscal.ConfirmedCost   = fiscal.Cost < 0 ? -request.ConfirmedCost : request.ConfirmedCost;
                    fiscal.ConfirmEmployee = _employeeRepository.FindBy(request.ConfirmEmployeeID);

                    if (request.Confirm == ConfirmEnum.Confirmed)
                    {
                        fiscal.SerialNumber = NewSerialNumber(fiscal.MoneyAccount);
                    }

                    #region Check Permission
                    // Check if the Employee can confirm or not
                    if (!fiscal.EmployeesWhoCanConfirm.Contains(fiscal.ConfirmEmployee))
                    {
                        response.ErrorMessages.Add("YouCanNotConfirmThisMoneyAccountKey");
                        return(response);
                    }
                    #endregion

                    #region Check the Cost
                    // Check if (ConfirmCost > Cost) then Rais error
                    if (request.ConfirmedCost > Math.Abs(fiscal.Cost))
                    {
                        response.ErrorMessages.Add("InvalidConfirmCostKey");
                        return(response);
                    }
                    #endregion

                    #region RowVresion Check

                    if (fiscal.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        fiscal.RowVersion += 1;
                    }
                    fiscal.AccountingSerialNumber = NewAccountingSerialNumber;

                    #endregion

                    if (customer.Balance < request.ConfirmedCost && fiscal.ConfirmedCost < 0 && request.Confirm == ConfirmEnum.Confirmed)
                    {
                        response.ErrorMessages.Add("مبلغ پرداختی به مشتری بیش از بستانکاری مشتری میباشد");
                        return(response);
                    }

                    #region Change Customer Balance
                    if ((int)request.Confirm != 1 && (int)request.Confirm != 3)
                    {
                        if (fiscal.MoneyAccount.HasUniqueSerialNumber)
                        {
                            Query     query           = new Query();
                            Criterion uniqueCriterion = new Criterion("FiscalReciptNumber", request.FiscalReciptNumber, CriteriaOperator.Equal);
                            query.Add(uniqueCriterion);
                            Criterion uniqueCriterion1 = new Criterion("MoneyAccount.ID", fiscal.MoneyAccount.ID, CriteriaOperator.Equal);
                            query.Add(uniqueCriterion1);
                            IEnumerable <FiscalView> fiscalView = _fiscalRepository.FindByQuery(query).data.ConvertToFiscalViews();
                            if (fiscalView.Count() > 0)
                            {
                                response.ErrorMessages.Add("  این شماره قبلا به  " + fiscalView.FirstOrDefault().CustomerName + " با شماره تلفن " + fiscalView.FirstOrDefault().ADSLPhone + " داده شده است ");
                                return(response);
                            }
                        }

                        fiscal.FiscalReciptNumber = request.FiscalReciptNumber;
                        customer.Balance         += fiscal.ConfirmedCost;
                        long confirmedCost = fiscal.ConfirmedCost == null ? 0 : (long)fiscal.ConfirmedCost;
                        customer.CanDeliverCost += confirmedCost;
                        _customerRepository.Save(customer);
                        if (customer.CanDeliverCost < 0)
                        {
                            response.ErrorMessages.Add(" هشدار ! با انجام این عملیات معین تحویل مشتری منفی میشود. لطفا با برنامه نویس تماس بگیرید");
                            return(response);
                        }
                    }

                    #endregion

                    _fiscalRepository.Save(fiscal);
                    _uow.Commit();
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                    if (ex.InnerException != null)
                    {
                        response.ErrorMessages.Add(ex.InnerException.Message);
                    }
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
                return(response);
            }

            return(response);
        }
        public async Task <IActionResult> Confirm(ConfirmRequest request)
        {
            var viewModel = await _modelMapper.Map <ConfirmViewModel>(request);

            return(View(viewModel));
        }