コード例 #1
0
        public void AuthController_UpdateEmailId_IntegrationTest_AuthorizedServer()
        {
            //Arrange
            var           username      = "******";
            RegisterModel registerModel = new RegisterModel
            {
                Title            = "Mr",
                FullName         = "SampleName",
                UserName         = username,
                UserRole         = "User",
                DialCode         = "+91",
                PhoneNumber      = "12341234",
                Email            = "*****@*****.**",
                Password         = "******",
                UserLocation     = "IN",
                Status           = "Verified",
                OTPExp           = DateTime.UtcNow.AddMinutes(4),
                VerificationCode = "AQAAAAEAACcQAAAAEDpGr4+u/Oik7F6OLHd3Tr03AX+jYRRqNeo48Il9md5wcPFBl+1xpDQLkimghNMogg=="
            };
            EmailUpdateModel emailUpdateModel = new EmailUpdateModel
            {
                Email = "*****@*****.**"
            };
            var expectedCode    = "200";
            var expectedMessage = "Email and username updated successfully";

            //Insert test data
            var insert = TH.InsertRegiterModeldata(registerModel).Result;

            //Act
            var result       = TH.GetAuthController().UpdateEmailId(emailUpdateModel, username) as Task <ActionResult>;
            var responseData = TH.DeserializedResponceData(result.Result.ToJson());

            //Check updated data
            var updatedData = BsonSerializer.Deserialize <RegisterModel>(MH.GetSingleObject(Builders <BsonDocument> .Filter.Eq("UserName", emailUpdateModel.Email), "Authentication", "Authentication").Result);

            //Assert
            Assert.IsNotNull(result.Result);
            Assert.AreEqual(responseData.Code, expectedCode);
            Assert.AreEqual(responseData.Message, expectedMessage);
            Assert.AreEqual(updatedData.Title, registerModel.Title);
            Assert.AreEqual(updatedData.FullName, registerModel.FullName);
            Assert.AreEqual(updatedData.UserName, emailUpdateModel.Email);
            Assert.AreEqual(updatedData.UserRole, registerModel.UserRole);
            Assert.AreEqual(updatedData.DialCode, registerModel.DialCode);
            Assert.AreEqual(updatedData.PhoneNumber, registerModel.PhoneNumber);
            Assert.AreEqual(updatedData.Email, emailUpdateModel.Email);
            Assert.AreEqual(updatedData.Password, registerModel.Password);
            Assert.AreEqual(updatedData.UserLocation, registerModel.UserLocation);
            Assert.AreEqual(updatedData.Status, registerModel.Status);
            Assert.AreEqual(updatedData.VerificationCode, registerModel.VerificationCode);

            //Delete inserted test data
            var checkData = MH.CheckForDatas("UserName", emailUpdateModel.Email, null, null, "Authentication", "Authentication");

            if (checkData != null)
            {
                var delete = MH.DeleteSingleObject(Builders <BsonDocument> .Filter.Eq("UserName", emailUpdateModel.Email), "Authentication", "Authentication");
            }
        }
コード例 #2
0
        public async Task <IActionResult> UpdateEmail(EmailInfoUpdate emailUpdate)
        {
            var loggedUserUsername = User.Identity.Name;
            var updateParameters   = new EmailUpdateModel
            {
                EGN                = emailUpdate.EGN,
                EmailId            = emailUpdate.EmailId,
                LoggedUserUsername = loggedUserUsername,
                NewStatus          = emailUpdate.NewStatus,
                PhoneNumber        = emailUpdate.PhoneNumber,
                FullName           = emailUpdate.FullName,
                Amount             = emailUpdate.Amount
            };
            var doWeUpdateValidData = await processingService.ValidateEmailTimeStamp(emailUpdate.EmailId, emailUpdate.CurrentDataStamp);

            if (!doWeUpdateValidData)
            {
                this.TempData["executionMessage"] = "The data you are trying to access has been changed, this is the latest version.";
                return(RedirectToAction("GetEmailInfo", "EmailInfo", new { emailId = emailUpdate.EmailId }));
            }

            var success = await processingService.ProcessEmailUpdate(updateParameters);

            if (success)
            {
                this.TempData["executionMessage"] = "";
                return(RedirectToAction("GetEmailInfo", "EmailInfo", new { emailId = emailUpdate.EmailId }));
            }
            return(BadRequest());
        }
コード例 #3
0
        public async Task ProcessEmailUpdateShouldReturnFalseWhenInvalidNameIsPassed()
        {
            var options = new DbContextOptionsBuilder <TBIContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options;

            var userStore   = new Mock <IUserStore <User> >();
            var userManager = new Mock <UserManager <User> >(userStore.Object, null, null, null, null, null, null, null, null);

            var encrypter    = new Mock <IEncrypter>();
            var validator    = new Mock <IValidator>();
            var emailService = new Mock <IEmailService>().Object;

            var date  = DateTime.Now;
            var email = new Application
            {
                Id                = 1,
                Received          = date,
                Email             = "*****@*****.**",
                ApplicationStatus = ApplicationStatus.Open,
                Body              = "test text",
                OperatorId        = "1",
                LastChange        = date
            };
            var updateParameters = new EmailUpdateModel
            {
                EmailId            = 1,
                LoggedUserUsername = "******",
                Amount             = 23,
                NewStatus          = "Accepted",
                EGN         = "1111111111",
                PhoneNumber = "0876281932",
                FullName    = "Ivan Petrov3123"
            };

            var user = new User {
                Id = "1", UserName = "******"
            };

            userManager.Setup(g => g.FindByNameAsync("testUser")).Returns(Task.FromResult(user));
            userManager.Setup(g => g.IsInRoleAsync(user, "Operator")).Returns(Task.FromResult(true));

            validator.Setup(d => d.ValidateEGN("1111111111")).Returns(Task.FromResult(true));
            validator.Setup(d => d.ValidatePhone("0876281932")).Returns(Task.FromResult(true));

            validator.Setup(d => d.ValidateName("Ivan Petrov3123")).Returns(Task.FromResult(false));

            using (var arrangeContex = new TBIContext(options))
            {
                arrangeContex.Applications.Add(email);
                await arrangeContex.SaveChangesAsync();
            }
            using (var assertContext = new TBIContext(options))
            {
                var sut             = new EmailProcessingService(assertContext, encrypter.Object, userManager.Object, validator.Object, emailService);
                var executionResult = await sut.ProcessEmailUpdate(updateParameters);

                Assert.AreEqual(false, executionResult);
            }
        }
コード例 #4
0
        public async Task <bool> ProcessEmailUpdate(EmailUpdateModel parameters)
        {
            var emailToBeUpdated = await context.Applications.FindAsync(parameters.EmailId);

            var currentLoggedUser = await userManager.FindByNameAsync(parameters.LoggedUserUsername);

            var listOfPermittedStatuses = await ReturnPermitedUpdates(emailToBeUpdated.ApplicationStatus, currentLoggedUser);

            if (!listOfPermittedStatuses.Contains(parameters.NewStatus))
            {
                return(false);
            }

            var permitionGranted = await IsTheLoggedUserPermitedToUpdateTheEmail(currentLoggedUser, emailToBeUpdated);

            if (permitionGranted)
            {
                await UpdateApplication(parameters.NewStatus, emailToBeUpdated, currentLoggedUser);

                if (parameters.NewStatus == ApplicationStatus.Open.ToString())
                {
                    var success = await UpdateApplicationProperties(parameters.PhoneNumber, parameters.EGN, emailToBeUpdated);

                    if (!success)
                    {
                        return(false);
                    }
                }
                if (emailToBeUpdated.ApplicationStatus == ApplicationStatus.Accepted)
                {
                    if (!await validator.ValidateName(parameters.FullName))
                    {
                        return(false);
                    }
                    await this.IssueAccount(emailToBeUpdated.Email, emailToBeUpdated.Phone, emailToBeUpdated.EGN, parameters.FullName);

                    await this.IssueLoan(emailToBeUpdated.Email, parameters.Amount);
                }

                emailToBeUpdated.LastChange = DateTime.Now;
                await context.SaveChangesAsync(currentLoggedUser);

                return(true);
            }

            return(false);
        }
コード例 #5
0
        public async Task <IActionResult> UpdateTDSEmailData(EmailUpdateModel model)
        {
            try
            {
                if (model == null)
                {
                    return(BadRequest());
                }
                var Update = await _tdsService.UpdateTDSEmailData(model);

                return(Ok(Update));
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
        }
コード例 #6
0
        public async Task <ResponseModel> UpdateTDSEmailData(EmailUpdateModel model)
        {
            try
            {
                var Getdata = await _dBContext.TblAllTdsEmails.Where(f => f.MailId == model.MailId).Include(f => f.Tds).FirstOrDefaultAsync();

                if (Getdata == null)
                {
                    return(new ResponseModel {
                        ResponseMessage = "Mailing Tds Not Found", StatusCode = Convert.ToInt32(HttpStatusCode.NotFound)
                    });
                }

                if (Getdata.TdsIsMailSended == true)
                {
                    return(new ResponseModel {
                        ResponseMessage = "Update failed due to Mail already sended", StatusCode = Convert.ToInt32(HttpStatusCode.IMUsed)
                    });
                }
                _mapper.Map <EmailUpdateModel, TblAllTdsEmail>(model, Getdata);

                if (Getdata.TdsPdfName != null)
                {
                    string filePath = _configuration.GetSection("KeyValue").GetSection("PhysicalPath").Value;

                    string fileVirtualPathQP = _configuration.GetSection("KeyValue").GetSection("QPVirtualPath").Value;

                    Getdata.TdsPdfUrl = fileVirtualPathQP + "/" + Getdata.Tds?.TdsTxnId + "/" + Getdata.TdsPdfName.ToString().Trim() + ".pdf";
                }

                Getdata.UpdatedBy = "Administrator"; Getdata.UpdatedOn = DateTime.Now;

                _dBContext.Update <TblAllTdsEmail>(Getdata);

                await _dBContext.SaveChangesAsync();

                return(new ResponseModel {
                    ResponseMessage = "Updated succesfully", StatusCode = Convert.ToInt32(HttpStatusCode.Created)
                });
            }
            catch (Exception Ex)
            {
                throw Ex;
            }
        }