public async Task OnRegister_WhenPassValidUser_AddValidUser()
        {
            var options = new DbContextOptionsBuilder <UserDbContext>()
                          .UseInMemoryDatabase(databaseName: "InMemoryUserDbContext")
                          .Options;

            var user = new PortFreightUser()
            {
                UserName     = "******",
                SenderId     = "Test1234",
                Email        = "*****@*****.**",
                PasswordHash = "TestTest1!"
            };

            using (var context = new UserDbContext(options))
            {
                await context.Users.AddAsync(user);

                context.SaveChanges();
            }

            using (var context = new UserDbContext(options))
            {
                Assert.AreEqual(1, context.Users.Count());
                Assert.AreEqual(user.UserName, context.Users.FirstOrDefault(x => x.UserName == user.UserName).UserName);
            }
        }
        public void PreApprovedUserList(PortFreightUser user)
        {
            if (preApprovedUsers == null)
            {
                invitedUsers = new List <InvitedColleagueViewMidel>();
                var registeredUsers = _userContext.Users
                                      .Where(x => x.SenderId == user.SenderId);

                var registeredEmails = registeredUsers.Select(x => x.Email);

                var allPreapprovedUsers = _userContext.PreApprovedUsers
                                          .Where(x => x.SenderId == user.SenderId)
                                          .Where(x => x.EmailAddress.Contains('@'))
                                          .GroupBy(x => x.EmailAddress)
                                          .Select(x => x.FirstOrDefault())
                                          .Select(x => x.EmailAddress)
                                          .Union(registeredEmails)
                                          .Distinct();

                foreach (string invitedUser in allPreapprovedUsers)
                {
                    bool registered = registeredUsers.Any(x => x.Email == invitedUser);
                    invitedUsers.Add(new InvitedColleagueViewMidel
                    {
                        Email         = invitedUser,
                        CurrentStatus = registered == true ? "active" : "invited"
                    });
                }
            }
        }
        public async Task <IActionResult> OnPostAsync()
        {
            PortFreightUser user = await _userManager.GetUserAsync(HttpContext.User);

            mapInputsToMSDI(user);

            if (doAllPortsAndShipsExist())
            {
                try
                {
                    _context.Msd1Data.Update(msd1);
                    _context.SaveChanges();

                    TempData.Put("EditSuccess", "Submission has been successfully amended");

                    return(RedirectToPage("/Submissions/FindSubmission", new { area = "Admin" }));
                }
                catch (Exception e)
                {
                    _logger.LogError(e, e.Message);

                    ModelState.AddModelError("CustomError", "There is a problem save the changes");

                    return(Page());
                }
            }

            return(Page());
        }
Exemple #4
0
        public async Task OnLogin_WhenContactDetailsUnavailable_RedirectToContactDetails()
        {
            var portFreightUser = new PortFreightUser()
            {
                UserName     = "******",
                Email        = "*****@*****.**",
                PasswordHash = "TestTest1!",
                SenderId     = "T12345"
            };

            portFreightUsersList = new List <PortFreightUser>();
            portFreightUsersList.Add(portFreightUser);

            loginModel.Input = new LoginModel.InputModel
            {
                Email      = portFreightUser.Email,
                Password   = portFreightUser.PasswordHash,
                RememberMe = true
            };

            mockfakeSignInManager.Setup(x => x.PasswordSignInAsync(loginModel.Input.Email, loginModel.Input.Password, loginModel.Input.RememberMe, true)).ReturnsAsync(Microsoft.AspNetCore.Identity.SignInResult.Success);

            mockUserManager.Setup(u => u.FindByEmailAsync(It.IsAny <string>())).ReturnsAsync(portFreightUsersList.FirstOrDefault());

            var result = (RedirectToPageResult)await loginModel.OnPostAsync();

            Assert.IsNotNull(result);
            Assert.AreEqual("/Profile/ContactDetails", result.PageName);
            Assert.IsInstanceOfType(result, typeof(RedirectToPageResult));
        }
Exemple #5
0
 private SenderType FindSavedPort(PortFreightUser user)
 {
     return(_context.SenderType.Include(p => p.SenderIdPort)
            .Where(p => p.SenderId == user.SenderId)
            .Include(p => p.SenderIdPort)
            .SingleOrDefault());
 }
Exemple #6
0
        public async Task <IActionResult> OnPostAsync()
        {
            PopulatePortFreightUser();
            if (ModelState.IsValid)
            {
                var user = new PortFreightUser {
                    UserName = Input.Email, Email = Input.Email, SenderId = Input.SenderId
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password");

                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Page(
                        "/Account/ConfirmEmail",
                        pageHandler: null,
                        values: new { userId = user.Id, code = code },
                        protocol: "https");

                    _emailSender.SendEmail(Input.Email, "Confirm your email", _htmlEncoder.Encode(callbackUrl));

                    return(RedirectToPage("RegisterConfirmation"));
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            return(Page());
        }
        public async Task <IActionResult> OnGetAsync(string sortOrder)
        {
            LoggedInUser = await _userManager.GetUserAsync(HttpContext.User);

            InitialisePage(LoggedInUser);
            MSD3VM = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();

            string submitted = CustomExtensions.NotNullOrEmpty(TempData) && TempData[SubmittedKey] != null?TempData.GetKeep <string>(SubmittedKey) : "";

            var existingParent = FindSubmission();

            if (existingParent != null)
            {
                TempData.Put("SubmittedKey", "true");
                TempData.Remove(MSD3Key);
                AssignMSD3ToInput(existingParent);
            }
            else
            {
                string slectedYearQuarter = MSD23.Year.ToString() + MSD23.Quarter.ToString();
                if (submitted.ToString() == "true")
                {
                    MSD3VM.AgentSummary.Clear();
                    TempData.Remove(MSD3Key);
                }
                else if (submitted.ToString() != "false" + slectedYearQuarter)
                {
                    MSD3VM.AgentSummary.Clear();
                    TempData.Remove(MSD3Key);
                }
                TempData.Put("SubmittedKey", "false" + slectedYearQuarter);
            }

            return(Page());
        }
        public async Task <IActionResult> OnPostAsync()
        {
            PortFreightUser user = await _userManager.GetUserAsync(HttpContext.User);

            mapInputsToMSD2(user);
            if (!WeightIsValid(msd2.GrossWeightInward, msd2.GrossWeightOutward, msd2.Year, msd2.Quarter, msd2.ReportingPort, msd2.SenderId))
            {
                return(Page());
            }

            if (!Msd2ReportingPortExists(msd2.ReportingPort))
            {
                ModelState.AddModelError("ReportingPort", "The Reporting port entered is not in the global port list");
                return(Page());
            }

            try
            {
                _context.Msd2.Update(msd2);
                _context.SaveChanges();

                TempData.Put("EditSuccess", "Submission has been successfully amended");

                return(RedirectToPage("./Index", new { area = "Admin" }));
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);

                ModelState.AddModelError("CustomError", "There is a problem save the changes");

                return(Page());
            }
        }
        public void ReinstateUser(string id)
        {
            PortFreightUser = _userContext.Users.FirstOrDefault(x => x.Id == id);

            PortFreightUser.LockoutEnd = null;

            UpdateAndSave();
        }
 private void InitialisePage(PortFreightUser user)
 {
     MSD23 = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD23Key] != null ? new MSD23(TempData.GetKeep <MSD23>(MSD23Key)) : new MSD23();
     var locodes = (from p in _context.SenderIdPort
                    join t in _context.SenderType on p.SenderId equals t.SenderId
                    where (t.IsPort == true) && p.SenderId == user.SenderId
                    select p.Locode).ToList();
 }
        public void DisableUser(string id)
        {
            PortFreightUser = _userContext.Users.FirstOrDefault(x => x.Id == id);

            PortFreightUser.LockoutEnd = DateTime.Now.AddMonths(18);

            UpdateAndSave();
        }
 private void InitialisePage(PortFreightUser user)
 {
     MSD23   = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD23Key] != null ? new MSD23(TempData.GetKeep <MSD23>(MSD23Key)) : new MSD23();
     Senders = _context.OrgList
               .Where(s => s.IsAgent || s.IsLine)
               .Select(s =>
                       s.OrgId.ToString() + " - " + s.OrgName.ToString()
                       ).ToList();
 }
Exemple #13
0
        public async Task <IActionResult> OnGetAsync()
        {
            InitialisePage();

            loggedInUser = await _userManager.GetUserAsync(HttpContext.User);

            if (loggedInUser == null || loggedInUser.SenderId == null)
            {
                return(RedirectToPage("/Account/Logout", new { area = "Identity" }));
            }

            var senderTypesDetails = _helperService.GetSenderType(loggedInUser.SenderId);
            var AgentId            = !CustomExtensions.NotNullOrEmpty(Input.AgentSenderId) && senderTypesDetails.IsAgent == true
                ? loggedInUser.SenderId : Input.AgentSenderId;
            var LineId = !CustomExtensions.NotNullOrEmpty(Input.LineSenderId) && senderTypesDetails.IsLine == true
                ? loggedInUser.SenderId : Input.LineSenderId;

            if (LineId != null)
            {
                Input.LineSenderId = _context.ContactDetails.Where(s => s.SenderId == LineId).Select
                                     (
                    s =>
                    s.SenderId.ToString() +
                    " - " + s.CompanyName.ToString()).SingleOrDefault();
            }
            if (AgentId != null)
            {
                Input.AgentSenderId = _context.ContactDetails.Where(s => s.SenderId == AgentId).Select
                                      (
                    s =>
                    s.SenderId.ToString() +
                    " - " + s.CompanyName.ToString()).SingleOrDefault();
            }

            if (CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD1Key] != null)
            {
                MSD1 = new MSD1(TempData.GetKeep <MSD1>(MSD1Key));
                if (CustomExtensions.NotNullOrEmpty(MSD1.AgentSenderID) || CustomExtensions.NotNullOrEmpty(MSD1.LineSenderID))
                {
                    Input.AgentSenderId = MSD1.AgentSenderID +
                                          " - " + MSD1.AgentCompanyName;

                    Input.LineSenderId = MSD1.LineSenderID +
                                         " - " + MSD1.LineCompanyName;
                }
            }

            FromSummary = Helpers.ReturnBoolFromQueryString(HttpContext, "FromSummary");

            return(Page());
        }
Exemple #14
0
        private void InitialisePage(PortFreightUser user)
        {
            Input.SenderType = _context.SenderType
                               .Where(x => x.SenderId == user.SenderId)
                               .FirstOrDefault().IsPort;

            UkPorts      = _helperService.GetRespondentPorts();
            RespondentVM = new RespondentViewModel();
            var existingPort = FindSavedPort(user);

            if (existingPort != null)
            {
                AssignDataToInput(existingPort);
            }
        }
        public async Task OnPostRemoveAgent(Guid?Id)
        {
            ModelState.Clear();
            LoggedInUser = await _userManager.GetUserAsync(HttpContext.User);

            if (Id != null && Id != Guid.Empty)
            {
                var localMSD3 = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();;
                var agentItem = localMSD3.AgentSummary.Where(x => x.Id == Id).SingleOrDefault();
                localMSD3.AgentSummary.Remove(agentItem);
                TempData.Put(MSD3Key, localMSD3);
            }
            InitialisePage(LoggedInUser);
            MSD3VM = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();
        }
        public void mapInputsToMSDI(PortFreightUser user)
        {
            msd1 = TempData.GetKeep <Msd1Data>("Msd1");

            msd1.Imo            = Imo;
            msd1.ShipName       = ShipName;
            msd1.Year           = Year;
            msd1.Quarter        = Quarter;
            msd1.NumVoyages     = NumVoyages;
            msd1.ReportingPort  = ReportingPort;
            msd1.AssociatedPort = AssociatedPort;
            msd1.LastUpdatedBy  = user.Email;
            msd1.ModifiedDate   = DateTime.Now;
            msd1.IsInbound      = IsInbound;
        }
Exemple #17
0
 public IActionResult OnPostResendEmail(string callback)
 {
     try
     {
         _emailSender.SendEmail(Input.Email, "Confirm your email", callback);
         var user = new PortFreightUser
         {
             Email = Input.Email
         };
         TempData.Put("PreApprovedUser", user);
         return(RedirectToPage("./RegisterConfirmation"));
     }
     catch
     {
         return(Page());
     }
 }
        private void GetSubmittedQuarters(string port, PortFreightUser user)
        {
            port = port ?? ReportingPorts[ReportingPorts.Count - 1].Value;
            if (port.Any())
            {
                AgentQuarters = _context.Msd3
                                .Where(p =>
                                       p.ReportingPort == port &&
                                       p.SenderId == user.SenderId &&
                                       (p.Year == DateTime.Now.Year || p.Year == DateTime.Now.AddYears(-1).Year))
                                .Select(x => new AgentQuarterViewModel
                {
                    ReportingPort = x.ReportingPort,
                    Year          = x.Year,
                    Quarter       = x.Quarter
                })
                                .ToList();

                CargoQuarters = _context.Msd2
                                .Where(p => p.ReportingPort == port && p.SenderId == user.SenderId &&
                                       (p.Year == DateTime.Now.Year || p.Year == DateTime.Now.AddYears(-1).Year))
                                .Select(x => new CargoQuarterViewModel
                {
                    ReportingPort = x.ReportingPort,
                    Year          = x.Year,
                    Quarter       = x.Quarter
                })
                                .ToList();
            }
            var locodes = (from p in _context.SenderIdPort
                           join t in _context.SenderType on p.SenderId equals t.SenderId
                           where (t.IsPort == true) && p.SenderId == user.SenderId
                           select p.Locode);
            IOrderedQueryable <GlobalPort> ports = _context.GlobalPort.AsNoTracking().Where(x => locodes.Contains(x.Locode)).OrderByDescending(o => o.Locode);

            ReportingPorts = ports.Select(n => new SelectListItem
            {
                Value = n.Locode,
                Text  = n.PortName,
            }).ToList();
            ReportingPorts.ForEach(x =>
            {
                x.Selected = x.Value == port;
            });
        }
        public async Task OnGet_GoodTempData_GoodContext_ReturnsResult()
        {
            var portFreightUser = new PortFreightUser
            {
                Id       = "1",
                Email    = "*****@*****.**",
                SenderId = "DFT007"
            };

            actualUserContext.Users.Add(portFreightUser);
            await actualUserContext.SaveChangesAsync();

            var senderType = new List <SenderType>()
            {
                new SenderType {
                    SenderId = "DFT007", IsAgent = true, IsLine = false, IsPort = true
                }
            };

            actualContext.SenderType.AddRange(senderType);
            await actualContext.SaveChangesAsync();

            MSD1 Msd1 = new MSD1();

            tempData["MSD1Key"] = JsonConvert.SerializeObject(Msd1);

            pageModel = new CompanyDetailsModel(actualContext, CommonFunction, mockUserManager.Object)
            {
                PageContext = pageContext,
                TempData    = tempData,
                Url         = new UrlHelper(actionContext)
            };

            mockUserManager.Setup(p => p.GetUserAsync(httpContext.User)).ReturnsAsync(portFreightUsers.FirstOrDefault(x => x.Id == "1"));

            var result = await pageModel.OnGetAsync();

            Assert.IsNotNull(result);
            Assert.IsNotNull(pageModel.AgentSenders);
            Assert.IsNotNull(pageModel.LineSenders);
            Assert.IsNotNull(pageModel.Input.AgentSenderId);
            Assert.IsNull(pageModel.Input.LineSenderId == "" ? null : pageModel.Input.LineSenderId);
            Assert.IsNotNull(pageModel.User);
            Assert.AreEqual(pageModel.loggedInUser.Email, portFreightUser.Email);
        }
        public void mapInputsToMSD2(PortFreightUser user)
        {
            msd2 = TempData.GetKeep <Msd2>("Msd2");

            msd2.Id                       = Id;
            msd2.SenderId                 = SenderId;
            msd2.CreatedDate              = CreatedDate;
            msd2.ReportingPort            = ReportingPort;
            msd2.Year                     = Year;
            msd2.Quarter                  = Quarter;
            msd2.GrossWeightInward        = GrossWeightInward;
            msd2.TotalUnitsInward         = TotalUnitsInward;
            msd2.PassengerVehiclesInward  = PassengerVehiclesInward;
            msd2.GrossWeightOutward       = GrossWeightOutward;
            msd2.TotalUnitsOutward        = TotalUnitsOutward;
            msd2.PassengerVehiclesOutward = PassengerVehiclesOutward;
            msd2.LastUpdatedBy            = user.Email;
        }
Exemple #21
0
        public void OnPostAsync_WhenUserIsNotinPreApprovedUserList_ShowInvitationErroMsg()
        {
            var preApprovedUser = new PreApprovedUser
            {
                EmailAddress = "*****@*****.**",
                SenderId     = "Test1234"
            };

            _usercontext.PreApprovedUsers.Add(preApprovedUser);

            var portFreightUser = new PortFreightUser
            {
                Email          = "*****@*****.**",
                SenderId       = "Test1234",
                EmailConfirmed = true
            };

            _usercontext.Users.Add(portFreightUser);
            _usercontext.SaveChangesAsync();

            var org = new OrgList
            {
                OrgId       = "TST001",
                SubmitsMsd1 = false,
                SubmitsMsd2 = true
            };

            _portfreightContext.OrgList.Add(org);
            _portfreightContext.SaveChangesAsync();

            pageModel.Input = new PreRegisterModel.InputModel {
                Email = "*****@*****.**", SenderId = "Test1234"
            };

            var result = (PageResult)pageModel.OnPost();

            Assert.IsNotNull(result);
            Assert.IsFalse(viewData.ModelState.IsValid);
            Assert.AreEqual(1, viewData.ModelState.Count);
            Assert.IsTrue(viewData.ModelState.ContainsKey("Input.SenderId"));
            Assert.IsTrue(viewData.ModelState.ErrorCount == 1);
            Assert.AreEqual("This Sender ID has already been registered. Ask your colleague to send you an invitation or contact helpdesk​", viewData.ModelState["Input.SenderId"].Errors[0].ErrorMessage);
            Assert.IsInstanceOfType(result, typeof(PageResult));
        }
 private void InitialisePage(PortFreightUser user, string port)
 {
     if (port == null)
     {
         var locodes = (from p in _context.SenderIdPort
                        join t in _context.SenderType on p.SenderId equals t.SenderId
                        where (t.IsPort == true) && p.SenderId == user.SenderId
                        select p.Locode);
         IOrderedQueryable <GlobalPort> ports = _context.GlobalPort.AsNoTracking().Where(x => locodes.Contains(x.Locode)).OrderByDescending(o => o.Locode);
         ReportingPorts = ports.Select(n => new SelectListItem
         {
             Value    = n.Locode,
             Text     = n.PortName,
             Selected = true
         }).ToList();
     }
     port = port ?? ReportingPorts[ReportingPorts.Count - 1].Value;
     GetSubmittedQuarters(port, user);
 }
        public async Task OnPost_ModelStateInvalid_ReturnsPageResult()
        {
            var portFreightUser = new PortFreightUser
            {
                Id       = "1",
                Email    = "*****@*****.**",
                SenderId = "DFT007"
            };

            actualUserContext.Users.Add(portFreightUser);
            await actualUserContext.SaveChangesAsync();

            var senderType = new List <SenderType>()
            {
                new SenderType {
                    SenderId = "DFT007", IsAgent = true, IsLine = false, IsPort = true
                }
            };

            actualContext.SenderType.AddRange(senderType);
            actualContext.SaveChanges();

            MSD1 Msd1 = new MSD1();

            tempData["MSD1Key"] = JsonConvert.SerializeObject(Msd1);

            pageModel = new CompanyDetailsModel(actualContext, CommonFunction, mockUserManager.Object)
            {
                PageContext = pageContext,
                TempData    = tempData,
                Url         = new UrlHelper(actionContext)
            };

            mockUserManager.Setup(p => p.GetUserAsync(httpContext.User)).ReturnsAsync(portFreightUsers.FirstOrDefault(x => x.Id == "1"));

            pageModel.ModelState.AddModelError("LineSenderId", "Line's Sender Id is required.");
            var result = pageModel.OnPost();

            Assert.IsNotNull(result);
            Assert.IsNull(pageModel.Input.LineSenderId == "" ? null : pageModel.Input.LineSenderId);
            Assert.IsInstanceOfType(result, typeof(PageResult));
        }
Exemple #24
0
        public async Task OnInvite_WhenPassInvalidUser_ModelStateThrowsanError()
        {
            var user = new PortFreightUser()
            {
                UserName = "******", Email = "*****@*****.**", PasswordHash = "TestTest1!"
            };

            var inputModel = new InviteColleagueModel.InputModel
            {
                Email = user.Email
            };

            inviteColleagueModel.Input = inputModel;
            inviteColleagueModel.ModelState.AddModelError("Sender Id", "Sender Id is required.");

            var result = await inviteColleagueModel.OnPostAsync();

            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(PageResult));
        }
Exemple #25
0
        public void OnPostAsync_WhenUserIsAlreadyRegisteredPortFreight_ShowErrorMsg()
        {
            pageModel.Input = new PreRegisterModel.InputModel {
                Email = "*****@*****.**", SenderId = "Test1234"
            };

            var portFreightUser = new PortFreightUser
            {
                Email    = "*****@*****.**",
                SenderId = "Test1234"
            };

            _usercontext.Users.Add(portFreightUser);
            _usercontext.SaveChangesAsync();

            var result = (PageResult)pageModel.OnPost();

            Assert.IsNotNull(result);
            Assert.IsTrue(viewData.ModelState.ContainsKey("EmailAlreadyRegistered"));
            Assert.IsInstanceOfType(result, typeof(PageResult));
        }
Exemple #26
0
        public void OnPostAsync_WhenIncorrectEmailRegistered_AllowNewUser()
        {
            var preApprovedUser = new PreApprovedUser
            {
                EmailAddress = "*****@*****.**",
                SenderId     = "TST001"
            };

            _usercontext.PreApprovedUsers.Add(preApprovedUser);

            var portFreightUser = new PortFreightUser
            {
                Email          = "*****@*****.**",
                SenderId       = "TST001",
                EmailConfirmed = false
            };

            _usercontext.Users.Add(portFreightUser);
            _usercontext.SaveChangesAsync();

            var org = new OrgList
            {
                OrgId       = "TST001",
                SubmitsMsd1 = false,
                SubmitsMsd2 = true
            };

            _portfreightContext.OrgList.Add(org);
            _portfreightContext.SaveChangesAsync();

            pageModel.Input = new PreRegisterModel.InputModel {
                Email = "*****@*****.**", SenderId = "TST001"
            };

            var result = (RedirectToPageResult)pageModel.OnPost();

            Assert.IsNotNull(result);
            Assert.AreEqual("Register", result.PageName);
            Assert.IsInstanceOfType(result, typeof(RedirectToPageResult));
        }
        public async Task OnPostAddAgent()
        {
            ModelState.Clear();
            LoggedInUser = await _userManager.GetUserAsync(HttpContext.User);

            if (Input.SenderId == null)
            {
                ModelState.AddModelError("Input.SenderId", "Enter a valid shipping agent");
            }
            var localMSD3 = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();

            if (localMSD3.AgentSummary.Count > 0)
            {
                bool isAlreadyAdded = localMSD3.AgentSummary.Any(x => x.ShippingAgent == Input.SenderId);
                if (isAlreadyAdded)
                {
                    ModelState.AddModelError("Input.SenderId", "Agent or line is already added");
                }
            }

            if (!ModelState.IsValid)
            {
                InitialisePage(LoggedInUser);
            }
            else
            {
                AgentItem = new Agent
                {
                    Id            = Guid.NewGuid(),
                    ShippingAgent = Input.SenderId
                };
                localMSD3.AgentSummary.Add(AgentItem);
                TempData.Put(MSD3Key, localMSD3);
                Input.SenderId = "";
                InitialisePage(LoggedInUser);
            }
            MSD3VM = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();
        }
Exemple #28
0
        public IActionResult OnPost()
        {
            if (ModelState.IsValid)
            {
                var user = new PreApprovedUser {
                    EmailAddress = Input.Email, SenderId = Input.SenderId
                };

                if (EmailIdRegistered(user))
                {
                    ModelState.AddModelError("EmailAlreadyRegistered", "This email is already registered");
                    return(Page());
                }

                var isUserPreApproved = _usercontext.PreApprovedUsers.Any(x => x.EmailAddress == user.EmailAddress);

                if (isUserPreApproved)
                {
                    if (DeatailsMatchPreApprovedList(user))
                    {
                        var preApprovedUser = new PortFreightUser {
                            UserName = Input.Email.ToLower(), Email = Input.Email.ToLower(), SenderId = Input.SenderId.ToUpper()
                        };
                        TempData.Put("PreApprovedUser", preApprovedUser);
                        return(RedirectToPage("Register"));
                    }

                    ModelState.AddModelError("CheckDetailsEntered", "Please check the details entered match those in your invitation email");
                    return(Page());
                }

                ModelState.AddModelError("CheckDetailsEntered", "We are unable to validate your details, please contact helpdesk");
                return(Page());
            }

            return(Page());
        }
        public async Task <IActionResult> OnPostAsync()
        {
            LoggedInUser = await _userManager.GetUserAsync(HttpContext.User);

            MSD3VM = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD3Key] != null ? new MSD3ViewModel(TempData.GetKeep <MSD3ViewModel>(MSD3Key)) : new MSD3ViewModel();
            MSD23  = CustomExtensions.NotNullOrEmpty(TempData) && TempData[MSD23Key] != null ? new MSD23(TempData.GetKeep <MSD23>(MSD23Key)) : new MSD23();
            if (MSD3VM.AgentSummary.Count < 1)
            {
                ModelState.AddModelError("Input.SenderId", "No shipping Line or Agents entered");
            }

            msd3UniqueKey = _helperService.GetUniqueKey();
            if (msd3UniqueKey == null)
            {
                ModelState.AddModelError("UniqueKeyError", "Failed to generate a unique Key");
            }

            if (!ModelState.IsValid)
            {
                InitialisePage(LoggedInUser);
                return(Page());
            }

            MSD3Data = new Msd3
            {
                Id            = msd3UniqueKey,
                SenderId      = LoggedInUser.SenderId,
                ReportingPort = MSD23.Port,
                Year          = MSD23.Year,
                Quarter       = MSD23.Quarter,
                DataSourceId  = (uint)DataSource.WEB,
                CreatedDate   = DateTime.SpecifyKind(currentDateTime, DateTimeKind.Utc),
                ModifiedDate  = DateTime.SpecifyKind(currentDateTime, DateTimeKind.Utc),
                CreatedBy     = LoggedInUser.Email.ToString(),
                LastUpdatedBy = LoggedInUser.Email.ToString()
            };

            var existingParent = FindSubmission();

            if (existingParent != null)
            {
                msd3UniqueKey        = existingParent.Id;
                MSD3Data.Id          = existingParent.Id;
                MSD3Data.CreatedDate = existingParent.CreatedDate;
                MSD3Data.CreatedBy   = existingParent.CreatedBy;
                _context.Entry(existingParent).CurrentValues.SetValues(MSD3Data);

                _context.Msd3agents.RemoveRange(existingParent.Msd3agents);

                foreach (Agent item in MSD3VM.AgentSummary)
                {
                    Msd3agents agentSummary = new Msd3agents
                    {
                        Msd3Id   = msd3UniqueKey,
                        SenderId = item.ShippingAgent.Split('-').FirstOrDefault().TrimEnd()
                    };
                    existingParent.Msd3agents.Add(agentSummary);
                }
                ;
            }
            else
            {
                foreach (Agent item in MSD3VM.AgentSummary)
                {
                    Msd3agents agentSummary = new Msd3agents
                    {
                        Msd3Id   = msd3UniqueKey,
                        SenderId = item.ShippingAgent.Split('-').FirstOrDefault().TrimEnd()
                    };
                    MSD3Data.Msd3agents.Add(agentSummary);
                }
                ;
                await _context.AddAsync(MSD3Data);
            }

            await _context.SaveChangesAsync();

            TempData.Remove(MSD3Key);

            return(RedirectToPage("./Success"));
        }