Ejemplo n.º 1
0
        public async Task <ActionResult> EditAcademyOpening(int?urn)
        {
            if (!urn.HasValue)
            {
                return(HttpNotFound());
            }

            var result = await _establishmentReadService.GetAsync((int)urn, User);

            var estabTypes = await _lookupService.EstablishmentTypesGetAllAsync();

            var links = await _establishmentReadService.GetLinkedEstablishmentsAsync((int)urn, User);

            var link = links.FirstOrDefault(e =>
                                            e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor);

            var establishment = (result).GetResult();

            var viewModel = new EditAcademyOpeningViewModel()
            {
                Urn = (int)urn,
                EstablishmentName = establishment.Name,
                EstablishmentType =
                    establishment.TypeId.HasValue
                        ? estabTypes.FirstOrDefault(t => t.Id == establishment.TypeId)?.Name
                        : null,
                PredecessorUrn  = link?.Urn.GetValueOrDefault().ToString(),
                PredecessorName = link?.EstablishmentName,
                OpeningDate     = new UI.Models.DateTimeViewModel(establishment.OpenDate)
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> SaveAcademyOpening(EditAcademyOpeningViewModel viewModel)
        {
            if (viewModel.EstablishmentName.IsNullOrWhiteSpace())
            {
                ModelState.AddModelError("EstablishmentName", "Please enter the establishment name");
            }

            if (!ModelState.IsValid)
            {
                return(View("EditAcademyOpening", viewModel));
            }

            DateTime openingDate = viewModel.OpeningDate.ToDateTime().GetValueOrDefault();
            var      links       = await _establishmentReadService.GetLinkedEstablishmentsAsync(viewModel.Urn, User);

            var link = links.FirstOrDefault(e =>
                                            e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor);

            ApiResponse response;

            if (link != null)
            {
                response = await _establishmentWriteService.PartialUpdateAsync(
                    new EstablishmentModel { CloseDate = openingDate.AddDays(-1), Urn = link.Urn },
                    new EstablishmentFieldList { CloseDate = true }, User);

                if (response.HasErrors)
                {
                    foreach (var e in response.Errors)
                    {
                        ModelState.AddModelError(e.Fields ?? string.Empty, e.GetMessage());
                    }
                }
            }

            response = await _establishmentWriteService.PartialUpdateAsync(
                new EstablishmentModel
            {
                OpenDate = openingDate, Name = viewModel.EstablishmentName, Urn = viewModel.Urn
            }, new EstablishmentFieldList { OpenDate = true, Name = true }, User);

            if (response.HasErrors)
            {
                foreach (var e in response.Errors)
                {
                    ModelState.AddModelError(e.Fields ?? string.Empty, e.GetMessage());
                }
            }

            return(RedirectToAction("ManageAcademyOpenings"));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> SearchAcademyOpenings(int?urn, bool?isSearching)
        {
            if (urn.HasValue)
            {
                var result = await _establishmentReadService.GetAsync((int)urn, User);

                if (result.ReturnValue == null)
                {
                    ModelState.AddModelError("Urn", "Please enter a valid URN");
                    return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel()));
                }
                var estabTypes = await _lookupService.EstablishmentTypesGetAllAsync();

                var links = await _establishmentReadService.GetLinkedEstablishmentsAsync((int)urn, User);

                var link = links.FirstOrDefault(e =>
                                                e.LinkTypeId == (int)eLookupEstablishmentLinkType.ParentOrPredecessor);

                var establishment = (result).GetResult();
                if (establishment.StatusId != (int)eLookupEstablishmentStatus.ProposedToOpen)
                {
                    ModelState.AddModelError("Urn", "Please enter a valid URN");
                    return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel()));
                }



                var viewModel = new EditAcademyOpeningViewModel()
                {
                    Urn = (int)urn,
                    EstablishmentName = establishment.Name,
                    EstablishmentType =
                        establishment.TypeId.HasValue
                            ? estabTypes.FirstOrDefault(t => t.Id == establishment.TypeId)?.Name
                            : null,
                    PredecessorUrn  = link?.Urn.GetValueOrDefault().ToString(),
                    PredecessorName = link?.EstablishmentName,
                    OpeningDate     = new UI.Models.DateTimeViewModel(establishment.OpenDate),
                    OpenDate        = establishment.OpenDate ?? DateTime.Now
                };
                return(View("SearchAcademyOpenings", viewModel));
            }

            if (isSearching ?? false)
            {
                ModelState.AddModelError("Urn", "Please enter a valid URN");
            }

            return(View("SearchAcademyOpenings", new EditAcademyOpeningViewModel()));
        }