コード例 #1
0
        public bool IsValid(ModelStateDictionary modelState, DocumentOrderViewModel model, out List <DocumentViewModel> validatedDocuments)
        {
            if (model.BookingType == BookingTypes.StandardOrderVisit)
            {
                ValidateStandardOrderDuplicateReference(modelState, model);

                if (modelState.IsValid)
                {
                    ValidateStandardOrderDocumentReferences(modelState);
                }
            }
            if (model.BookingType == BookingTypes.BulkOrderVisit)
            {
                if (!model.HaveNoDocumentReference && string.IsNullOrWhiteSpace(model.Series))
                {
                    modelState.AddModelError("Series", Constants.Series_Required);
                }
                if (!string.IsNullOrWhiteSpace(model.Series))
                {
                    ValidateNotOrderableSeries(modelState, model.Series);
                }
                ValidateBulkOrderDuplicateReference(modelState, model);
                if (modelState.IsValid)
                {
                    ValidateSeriesReferences(modelState, model.Series);
                    ValidateBulkOrderDocumentReferences(modelState);
                }
            }
            validatedDocuments = _validatedDocuments;
            return(modelState.IsValid);
        }
コード例 #2
0
        public static BookingModel MapToBookingModel(this DocumentOrderViewModel model, List <DocumentViewModel> validatedDocuments)
        {
            var returnModel = new BookingModel
            {
                BookingType            = model.BookingType,
                ReaderTicket           = model.ReaderTicket,
                BookingReference       = model.BookingReference,
                VisitStartDate         = model.BookingStartDate,
                CompleteByDate         = model.CompleteByDate,
                SeatType               = model.SeatType,
                SeatNumber             = model.SeatNumber,
                AdditionalRequirements = model.AdditionalRequirements,
                OrderDocuments         = new List <OrderDocumentModel>()
            };

            foreach (var document in validatedDocuments)
            {
                returnModel.OrderDocuments.Add(new OrderDocumentModel()
                {
                    DocumentReference = document.Reference,
                    Description       = document.Description,
                    LetterCode        = document.LetterCode,
                    ClassNumber       = document.ClassNumber,
                    PieceId           = document.PieceId,
                    PieceReference    = document.PieceReference,
                    SubClassNumber    = document.SubClassNumber == 0 ? -1 : document.SubClassNumber,
                    ItemReference     = document.ItemReference,
                    Site      = document.IsOffsite ? "offsite" : "kew",
                    IsReserve = document.IsReserved
                });
            }
            return(returnModel);
        }
        public async Task <IActionResult> OrderDocuments(DocumentOrderViewModel model)
        {
            if (_validateDocumentOrder.IsValid(ModelState, model, out var validatedDocs))
            {
                var bookingModel = model.MapToBookingModel(validatedDocs);
                var response     = await _bookingService.UpsertDocumentAsync(bookingModel);

                if (response.IsSuccess)
                {
                    var routeValues = new
                    {
                        bookingtype      = model.BookingType.ToStringURL(),
                        readerticket     = model.ReaderTicket,
                        bookingReference = model.BookingReference
                    };
                    return(RedirectToAction("OrderComplete", "DocumentOrder", routeValues));
                }
                ModelState.AddModelError("", response.ErrorMessage);
            }
            return(View(model));
        }
コード例 #4
0
        public static DocumentOrderViewModel MapToDocumentOrderViewModel(this BookingModel model)
        {
            var returnModel = new DocumentOrderViewModel
            {
                BookingType            = model.BookingType,
                ReaderTicket           = model.ReaderTicket,
                BookingReference       = model.BookingReference,
                BookingStartDate       = model.VisitStartDate,
                CompleteByDate         = model.CompleteByDate,
                SeatType               = model.SeatType,
                SeatNumber             = model.SeatNumber,
                AdditionalRequirements = model.AdditionalRequirements
            };
            var documents        = model.OrderDocuments.Where(d => !d.IsReserve).ToList();
            var reserveDocuments = model.OrderDocuments.Where(d => d.IsReserve).ToList();

            returnModel.Series = documents.Count > 0 ? $"{documents[0].LetterCode} {documents[0].ClassNumber}" : string.Empty;

            returnModel.DocumentReference1  = documents.Count > 0 ? documents[0].DocumentReference : string.Empty;
            returnModel.DocumentReference2  = documents.Count > 1 ? documents[1].DocumentReference : string.Empty;
            returnModel.DocumentReference3  = documents.Count > 2 ? documents[2].DocumentReference : string.Empty;
            returnModel.DocumentReference4  = documents.Count > 3 ? documents[3].DocumentReference : string.Empty;
            returnModel.DocumentReference5  = documents.Count > 4 ? documents[4].DocumentReference : string.Empty;
            returnModel.DocumentReference6  = documents.Count > 5 ? documents[5].DocumentReference : string.Empty;
            returnModel.DocumentReference7  = documents.Count > 6 ? documents[6].DocumentReference : string.Empty;
            returnModel.DocumentReference8  = documents.Count > 7 ? documents[7].DocumentReference : string.Empty;
            returnModel.DocumentReference9  = documents.Count > 8 ? documents[8].DocumentReference : string.Empty;
            returnModel.DocumentReference10 = documents.Count > 9 ? documents[9].DocumentReference : string.Empty;
            returnModel.DocumentReference11 = documents.Count > 10 ? documents[10].DocumentReference : string.Empty;
            returnModel.DocumentReference12 = documents.Count > 11 ? documents[11].DocumentReference : string.Empty;
            returnModel.DocumentReference13 = documents.Count > 12 ? documents[12].DocumentReference : string.Empty;
            returnModel.DocumentReference14 = documents.Count > 13 ? documents[13].DocumentReference : string.Empty;
            returnModel.DocumentReference15 = documents.Count > 14 ? documents[14].DocumentReference : string.Empty;
            returnModel.DocumentReference16 = documents.Count > 15 ? documents[15].DocumentReference : string.Empty;
            returnModel.DocumentReference17 = documents.Count > 16 ? documents[16].DocumentReference : string.Empty;
            returnModel.DocumentReference18 = documents.Count > 17 ? documents[17].DocumentReference : string.Empty;
            returnModel.DocumentReference19 = documents.Count > 18 ? documents[18].DocumentReference : string.Empty;
            returnModel.DocumentReference20 = documents.Count > 19 ? documents[19].DocumentReference : string.Empty;
            returnModel.DocumentReference21 = documents.Count > 20 ? documents[20].DocumentReference : string.Empty;
            returnModel.DocumentReference22 = documents.Count > 21 ? documents[21].DocumentReference : string.Empty;
            returnModel.DocumentReference23 = documents.Count > 22 ? documents[22].DocumentReference : string.Empty;
            returnModel.DocumentReference24 = documents.Count > 23 ? documents[23].DocumentReference : string.Empty;
            returnModel.DocumentReference25 = documents.Count > 24 ? documents[24].DocumentReference : string.Empty;
            returnModel.DocumentReference26 = documents.Count > 25 ? documents[25].DocumentReference : string.Empty;
            returnModel.DocumentReference27 = documents.Count > 26 ? documents[26].DocumentReference : string.Empty;
            returnModel.DocumentReference28 = documents.Count > 27 ? documents[27].DocumentReference : string.Empty;
            returnModel.DocumentReference29 = documents.Count > 28 ? documents[28].DocumentReference : string.Empty;
            returnModel.DocumentReference30 = documents.Count > 29 ? documents[29].DocumentReference : string.Empty;
            returnModel.DocumentReference31 = documents.Count > 30 ? documents[30].DocumentReference : string.Empty;
            returnModel.DocumentReference32 = documents.Count > 31 ? documents[31].DocumentReference : string.Empty;
            returnModel.DocumentReference33 = documents.Count > 32 ? documents[32].DocumentReference : string.Empty;
            returnModel.DocumentReference34 = documents.Count > 33 ? documents[33].DocumentReference : string.Empty;
            returnModel.DocumentReference35 = documents.Count > 34 ? documents[34].DocumentReference : string.Empty;
            returnModel.DocumentReference36 = documents.Count > 35 ? documents[35].DocumentReference : string.Empty;
            returnModel.DocumentReference37 = documents.Count > 36 ? documents[36].DocumentReference : string.Empty;
            returnModel.DocumentReference38 = documents.Count > 37 ? documents[37].DocumentReference : string.Empty;
            returnModel.DocumentReference39 = documents.Count > 38 ? documents[38].DocumentReference : string.Empty;
            returnModel.DocumentReference40 = documents.Count > 39 ? documents[39].DocumentReference : string.Empty;

            returnModel.ReserveDocumentReference1 = reserveDocuments.Count > 0 ? reserveDocuments[0].DocumentReference : string.Empty;
            returnModel.ReserveDocumentReference2 = reserveDocuments.Count > 1 ? reserveDocuments[1].DocumentReference : string.Empty;
            returnModel.ReserveDocumentReference3 = reserveDocuments.Count > 2 ? reserveDocuments[2].DocumentReference : string.Empty;

            return(returnModel);
        }
コード例 #5
0
        private void ValidateBulkOrderDuplicateReference(ModelStateDictionary modelStateDictionary, DocumentOrderViewModel model)
        {
            _documentReference = new Dictionary <int, string>();

            AddReference(1, model.DocumentReference1);
            AddReference(2, model.DocumentReference2);
            AddReference(3, model.DocumentReference3);
            AddReference(4, model.DocumentReference4);
            AddReference(5, model.DocumentReference5);
            AddReference(6, model.DocumentReference6);
            AddReference(7, model.DocumentReference7);
            AddReference(8, model.DocumentReference8);
            AddReference(9, model.DocumentReference9);
            AddReference(10, model.DocumentReference10);
            AddReference(11, model.DocumentReference11);
            AddReference(12, model.DocumentReference12);
            AddReference(13, model.DocumentReference13);
            AddReference(14, model.DocumentReference14);
            AddReference(15, model.DocumentReference15);
            AddReference(16, model.DocumentReference16);
            AddReference(17, model.DocumentReference17);
            AddReference(18, model.DocumentReference18);
            AddReference(19, model.DocumentReference19);
            AddReference(20, model.DocumentReference20);
            AddReference(21, model.DocumentReference21);
            AddReference(22, model.DocumentReference22);
            AddReference(23, model.DocumentReference23);
            AddReference(24, model.DocumentReference24);
            AddReference(25, model.DocumentReference25);
            AddReference(26, model.DocumentReference26);
            AddReference(27, model.DocumentReference27);
            AddReference(28, model.DocumentReference28);
            AddReference(29, model.DocumentReference29);
            AddReference(30, model.DocumentReference30);
            AddReference(31, model.DocumentReference31);
            AddReference(32, model.DocumentReference32);
            AddReference(33, model.DocumentReference33);
            AddReference(34, model.DocumentReference34);
            AddReference(35, model.DocumentReference35);
            AddReference(36, model.DocumentReference36);
            AddReference(37, model.DocumentReference37);
            AddReference(38, model.DocumentReference38);
            AddReference(39, model.DocumentReference39);
            AddReference(40, model.DocumentReference40);

            var duplicates = _documentReference.GroupBy(x => x.Value.ToLower()).Where(c => c.Skip(1).Any()).SelectMany(c => c).ToList();

            foreach (var doc in duplicates)
            {
                modelStateDictionary.AddModelError($"DocumentReference{doc.Key}", $"{doc.Value} - {Constants.Duplicate_Document_Reference}");
            }
        }
コード例 #6
0
        private void ValidateStandardOrderDuplicateReference(ModelStateDictionary modelStateDictionary, DocumentOrderViewModel model)
        {
            _documentReference = new Dictionary <int, string>();

            AddReference(1, model.DocumentReference1);
            AddReference(2, model.DocumentReference2);
            AddReference(3, model.DocumentReference3);
            AddReference(4, model.DocumentReference4);
            AddReference(5, model.DocumentReference5);
            AddReference(6, model.DocumentReference6);
            AddReference(7, model.DocumentReference7);
            AddReference(8, model.DocumentReference8);
            AddReference(9, model.DocumentReference9);
            AddReference(10, model.DocumentReference10);
            AddReference(11, model.DocumentReference11);
            AddReference(12, model.DocumentReference12);

            AddReference(13, model.ReserveDocumentReference1);
            AddReference(14, model.ReserveDocumentReference2);
            AddReference(15, model.ReserveDocumentReference3);

            var duplicates = _documentReference.GroupBy(x => x.Value.ToLower()).Where(c => c.Skip(1).Any()).SelectMany(c => c).ToList();

            foreach (var doc in duplicates)
            {
                var errorId = doc.Key < 13 ? $"DocumentReference{doc.Key}" : $"ReserveDocumentReference{doc.Key - 12}";
                modelStateDictionary.AddModelError(errorId, $"{doc.Value} - {Constants.Duplicate_Document_Reference}");
            }
        }
 public void ValidateSeriesReferences(ModelStateDictionary modelStateDictionary, DocumentOrderViewModel model)
 {
     ValidateSeriesReference(modelStateDictionary, "DocumentReference1", model.DocumentReference1, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference2", model.DocumentReference2, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference3", model.DocumentReference3, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference4", model.DocumentReference4, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference5", model.DocumentReference5, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference6", model.DocumentReference6, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference7", model.DocumentReference7, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference8", model.DocumentReference8, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference9", model.DocumentReference9, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference10", model.DocumentReference10, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference11", model.DocumentReference11, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference12", model.DocumentReference12, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference13", model.DocumentReference13, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference14", model.DocumentReference14, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference15", model.DocumentReference15, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference16", model.DocumentReference16, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference17", model.DocumentReference17, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference18", model.DocumentReference18, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference19", model.DocumentReference19, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference20", model.DocumentReference20, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference21", model.DocumentReference21, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference22", model.DocumentReference22, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference23", model.DocumentReference23, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference24", model.DocumentReference24, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference25", model.DocumentReference25, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference26", model.DocumentReference26, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference27", model.DocumentReference27, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference28", model.DocumentReference28, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference29", model.DocumentReference29, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference30", model.DocumentReference30, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference31", model.DocumentReference31, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference32", model.DocumentReference32, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference33", model.DocumentReference33, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference34", model.DocumentReference34, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference35", model.DocumentReference35, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference36", model.DocumentReference36, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference37", model.DocumentReference37, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference38", model.DocumentReference38, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference39", model.DocumentReference39, model.Series);
     ValidateSeriesReference(modelStateDictionary, "DocumentReference40", model.DocumentReference40, model.Series);
 }
        public void ValidateBulkOrderDocumentReferences(ModelStateDictionary modelStateDictionary, DocumentOrderViewModel model)
        {
            _validatedDocuments = new List <DocumentViewModel>();

            ValidateReference(modelStateDictionary, "DocumentReference1", model.DocumentReference1);
            ValidateReference(modelStateDictionary, "DocumentReference2", model.DocumentReference2);
            ValidateReference(modelStateDictionary, "DocumentReference3", model.DocumentReference3);
            ValidateReference(modelStateDictionary, "DocumentReference4", model.DocumentReference4);
            ValidateReference(modelStateDictionary, "DocumentReference5", model.DocumentReference5);
            ValidateReference(modelStateDictionary, "DocumentReference6", model.DocumentReference6);
            ValidateReference(modelStateDictionary, "DocumentReference7", model.DocumentReference7);
            ValidateReference(modelStateDictionary, "DocumentReference8", model.DocumentReference8);
            ValidateReference(modelStateDictionary, "DocumentReference9", model.DocumentReference9);
            ValidateReference(modelStateDictionary, "DocumentReference10", model.DocumentReference10);
            ValidateReference(modelStateDictionary, "DocumentReference11", model.DocumentReference11);
            ValidateReference(modelStateDictionary, "DocumentReference12", model.DocumentReference12);
            ValidateReference(modelStateDictionary, "DocumentReference13", model.DocumentReference13);
            ValidateReference(modelStateDictionary, "DocumentReference14", model.DocumentReference14);
            ValidateReference(modelStateDictionary, "DocumentReference15", model.DocumentReference15);
            ValidateReference(modelStateDictionary, "DocumentReference16", model.DocumentReference16);
            ValidateReference(modelStateDictionary, "DocumentReference17", model.DocumentReference17);
            ValidateReference(modelStateDictionary, "DocumentReference18", model.DocumentReference18);
            ValidateReference(modelStateDictionary, "DocumentReference19", model.DocumentReference19);
            ValidateReference(modelStateDictionary, "DocumentReference20", model.DocumentReference20);
            ValidateReference(modelStateDictionary, "DocumentReference21", model.DocumentReference21);
            ValidateReference(modelStateDictionary, "DocumentReference22", model.DocumentReference22);
            ValidateReference(modelStateDictionary, "DocumentReference23", model.DocumentReference23);
            ValidateReference(modelStateDictionary, "DocumentReference24", model.DocumentReference24);
            ValidateReference(modelStateDictionary, "DocumentReference25", model.DocumentReference25);
            ValidateReference(modelStateDictionary, "DocumentReference26", model.DocumentReference26);
            ValidateReference(modelStateDictionary, "DocumentReference27", model.DocumentReference27);
            ValidateReference(modelStateDictionary, "DocumentReference28", model.DocumentReference28);
            ValidateReference(modelStateDictionary, "DocumentReference29", model.DocumentReference29);
            ValidateReference(modelStateDictionary, "DocumentReference30", model.DocumentReference30);
            ValidateReference(modelStateDictionary, "DocumentReference31", model.DocumentReference31);
            ValidateReference(modelStateDictionary, "DocumentReference32", model.DocumentReference32);
            ValidateReference(modelStateDictionary, "DocumentReference33", model.DocumentReference33);
            ValidateReference(modelStateDictionary, "DocumentReference34", model.DocumentReference34);
            ValidateReference(modelStateDictionary, "DocumentReference35", model.DocumentReference35);
            ValidateReference(modelStateDictionary, "DocumentReference36", model.DocumentReference36);
            ValidateReference(modelStateDictionary, "DocumentReference37", model.DocumentReference37);
            ValidateReference(modelStateDictionary, "DocumentReference38", model.DocumentReference38);
            ValidateReference(modelStateDictionary, "DocumentReference39", model.DocumentReference39);
            ValidateReference(modelStateDictionary, "DocumentReference40", model.DocumentReference40);
        }
        public void ValidateStandardOrderDocumentReferences(ModelStateDictionary modelStateDictionary, DocumentOrderViewModel model)
        {
            _validatedDocuments = new List <DocumentViewModel>();

            ValidateReference(modelStateDictionary, "DocumentReference1", model.DocumentReference1);
            ValidateReference(modelStateDictionary, "DocumentReference2", model.DocumentReference2);
            ValidateReference(modelStateDictionary, "DocumentReference3", model.DocumentReference3);
            ValidateReference(modelStateDictionary, "DocumentReference4", model.DocumentReference4);
            ValidateReference(modelStateDictionary, "DocumentReference5", model.DocumentReference5);
            ValidateReference(modelStateDictionary, "DocumentReference6", model.DocumentReference6);
            ValidateReference(modelStateDictionary, "DocumentReference7", model.DocumentReference7);
            ValidateReference(modelStateDictionary, "DocumentReference8", model.DocumentReference8);
            ValidateReference(modelStateDictionary, "DocumentReference9", model.DocumentReference9);
            ValidateReference(modelStateDictionary, "DocumentReference10", model.DocumentReference10);
            ValidateReference(modelStateDictionary, "DocumentReference11", model.DocumentReference11);
            ValidateReference(modelStateDictionary, "DocumentReference12", model.DocumentReference12);

            ValidateReference(modelStateDictionary, "ReserveDocumentReference1", model.ReserveDocumentReference1, true);
            ValidateReference(modelStateDictionary, "ReserveDocumentReference2", model.ReserveDocumentReference2, true);
            ValidateReference(modelStateDictionary, "ReserveDocumentReference3", model.ReserveDocumentReference3, true);
        }