Exemplo n.º 1
0
        public async Task <ActionResult> Index(BookServicePilotenPage currentPage, BookServiceForm form)
        {
            var userInfo = await _securityRepository.QueryUserAsync(SiteUser.UserName);

            var activeCustomer = UserManager.GetActiveCustomer(HttpContext);

            var starredCity = await _contactRepository.GetStarredGarageAsync(activeCustomer);

            var cityName = form.City;

            if (string.IsNullOrWhiteSpace(cityName))
            {
                cityName = starredCity;
            }
            ViewData["starred"] = cityName == starredCity;

            if (!ModelState.IsValid)
            {
                return(View("~/Views/BookService/BookService.cshtml", PostViewModel(currentPage, form, activeCustomer)));
            }
            var city = (await _contactRepository.GetGaragesAsync(activeCustomer, form.City))?.FirstOrDefault();

            var salesMenInCity = await _contactRepository.GetSalemenByCityAsync(cityName);

            var saleMan = salesMenInCity?.FirstOrDefault(s => s.Description == "Säljare") ?? salesMenInCity?.FirstOrDefault();

            var requestResult = await _contactRepository.RequestBooking(form.MachineModel,
                                                                        form.MachineSerialNumber, form.MachineRegister,
                                                                        form.Message, activeCustomer, city, SiteUser.Name, SiteUser.Email, userInfo.PhoneMobile,
                                                                        form.OwnerEmail, saleMan?.Email, SiteUser.Email != form.OwnerEmail);

            //parse result
            var tokens       = requestResult?.Split(new[] { "<br />" }, StringSplitOptions.RemoveEmptyEntries) ?? new string[2];
            var bookingSaved = string.Equals(tokens[0], "Garage booking saved.", StringComparison.OrdinalIgnoreCase);
            var bookingSent  = string.Equals(tokens[1], "Booking email sent.", StringComparison.OrdinalIgnoreCase);

            if (bookingSaved)
            {
                ViewData["backLinkReference"] = form.BackLinkReference;
                ViewData["reference"]         = form.Reference;
                return(View("~/Views/BookService/MessageSent.cshtml", PostViewModel(currentPage, form, activeCustomer)));
            }

            var strError = !bookingSent
                ? "Kunde inte spara garage bokning. Misslyckades skicka boknings e-post."
                : "Kunde inte spara garage bokning. Bokning e-postmeddelandet.";

            ViewData["error"] = strError;
            return(View("~/Views/BookService/BookService.cshtml", PostViewModel(currentPage, form, activeCustomer)));
        }
Exemplo n.º 2
0
 private BookServicePilotenViewModel PostViewModel(BookServicePilotenPage page, BookServiceForm bookserviceForm, CustomerBasicInfo customer)
 => new BookServicePilotenViewModel(page)
 {
     Customer            = customer,
     MachineModel        = bookserviceForm.MachineModel ?? string.Empty,
     MachineRegister     = bookserviceForm.MachineRegister ?? string.Empty,
     MachineSerialNumber = bookserviceForm.MachineSerialNumber ?? string.Empty,
     PhoneNumber         = bookserviceForm.PhoneNumber ?? string.Empty,
     OwnerEmail          = bookserviceForm.OwnerEmail ?? string.Empty,
     UserEmail           = SiteUser.Email ?? string.Empty,
     UserName            = SiteUser.Name ?? string.Empty,
     City = bookserviceForm.City ?? string.Empty
 };