Exemplo n.º 1
0
        public ActionResult Edit(AlbumEdit model)
        {
            if (!OptionalDateTime.IsValid(model.ReleaseYear, model.ReleaseDay, model.ReleaseMonth))
            {
                ModelState.AddModelError("ReleaseYear", "Invalid date");
            }

            var coverPicUpload = Request.Files["coverPicUpload"];
            PictureDataContract pictureData = ParseMainPicture(coverPicUpload, "CoverPicture");

            ParseAdditionalPictures(coverPicUpload, model.Pictures);

            if (!ModelState.IsValid)
            {
                var oldContract = Service.GetAlbumForEdit(model.Id);
                model.CopyNonEditableFields(oldContract);
                return(View(model));
            }

            var contract = model.ToContract();

            Service.UpdateBasicProperties(contract, pictureData);

            return(RedirectToAction("Details", new { id = model.Id }));
        }
Exemplo n.º 2
0
        public AlbumRelease(IAlbumRelease contract)
        {
            ParamIs.NotNull(() => contract);

            CatNum      = contract.CatNum;
            ReleaseDate = (contract.ReleaseDate != null ? OptionalDateTime.Create(contract.ReleaseDate) : null);
            EventName   = contract.EventName;
        }
Exemplo n.º 3
0
        public OptionalDateTimeContract(OptionalDateTime dateTime)
        {
            ParamIs.NotNull(() => dateTime);

            Day       = dateTime.Day;
            IsEmpty   = dateTime.IsEmpty;
            Month     = dateTime.Month;
            Year      = dateTime.Year;
            Formatted = dateTime.ToString();
        }
        private void AddBasicDescription(StringBuilder sb, AlbumContract album, Func <DiscType, string> albumTypeNames)
        {
            var typeName = albumTypeNames(album.DiscType);

            sb.Append(typeName);

            if (!album.ReleaseDate.IsEmpty)
            {
                var date = OptionalDateTime.Create(album.ReleaseDate).ToString(CultureInfo.InvariantCulture);
                sb.AppendFormat(", released {0}", date);
            }
        }
Exemplo n.º 5
0
        public ActionResult Edit(AlbumEditViewModel viewModel)
        {
            var model = viewModel.EditedAlbum;

            // Note: name is allowed to be whitespace, but not empty.
            if (model.Names.All(n => string.IsNullOrEmpty(n.Value)))
            {
                ModelState.AddModelError("Names", AlbumValidationErrors.UnspecifiedNames);
            }

            if (!OptionalDateTime.IsValid(model.OriginalRelease.ReleaseDate.Year, model.OriginalRelease.ReleaseDate.Day, model.OriginalRelease.ReleaseDate.Month))
            {
                ModelState.AddModelError("ReleaseYear", "Invalid date");
            }

            var coverPicUpload = Request.Files["coverPicUpload"];
            var pictureData    = ParsePicture(coverPicUpload, "CoverPicture");

            if (coverPicUpload == null)
            {
                AddFormSubmissionError("Cover picture was null");
            }

            if (model.Pictures == null)
            {
                AddFormSubmissionError("List of pictures was null");
            }

            if (coverPicUpload != null && model.Pictures != null)
            {
                ParseAdditionalPictures(coverPicUpload, model.Pictures);
            }

            try {
                viewModel.CheckModel();
            } catch (InvalidFormException x) {
                AddFormSubmissionError(x.Message);
            }

            if (!ModelState.IsValid)
            {
                return(View(new AlbumEditViewModel(Service.GetAlbum(model.Id), PermissionContext, model)));
            }

            queries.UpdateBasicProperties(model, pictureData);

            return(RedirectToAction("Details", new { id = model.Id }));
        }
Exemplo n.º 6
0
        private void TestEquals(bool equals,
                                int?firstYear  = null, int?firstMonth  = null, int?firstDay  = null,
                                int?secondYear = null, int?secondMonth = null, int?secondDay = null)
        {
            var first  = new OptionalDateTime(firstYear, firstMonth, firstDay);
            var second = new OptionalDateTime(secondYear, secondMonth, secondDay);

            if (equals)
            {
                Assert.AreEqual(first, second, "Dates are equal");
            }
            else
            {
                Assert.AreNotEqual(first, second, "Dates are not equal");
            }
        }
Exemplo n.º 7
0
 private void TestCompareTo(int expected,
                            OptionalDateTime first, OptionalDateTime second)
 {
     Assert.AreEqual(expected, first.CompareTo(second), "Comparing " + first + " to " + second);
 }
Exemplo n.º 8
0
        public ActionResult Edit(AlbumEditViewModel viewModel)
        {
            // Unable to continue if viewmodel is null because we need the ID at least
            if (viewModel == null || viewModel.EditedAlbum == null)
            {
                log.Warn("Viewmodel was null");
                return(HttpStatusCodeResult(HttpStatusCode.BadRequest, "Viewmodel was null - probably JavaScript is disabled"));
            }

            try {
                viewModel.CheckModel();
            } catch (InvalidFormException x) {
                AddFormSubmissionError(x.Message);
            }

            var model = viewModel.EditedAlbum;

            // Note: name is allowed to be whitespace, but not empty.
            if (model.Names != null && model.Names.All(n => n == null || string.IsNullOrEmpty(n.Value)))
            {
                ModelState.AddModelError("Names", AlbumValidationErrors.UnspecifiedNames);
            }

            if (model.OriginalRelease != null && model.OriginalRelease.ReleaseDate != null && !OptionalDateTime.IsValid(model.OriginalRelease.ReleaseDate.Year, model.OriginalRelease.ReleaseDate.Day, model.OriginalRelease.ReleaseDate.Month))
            {
                ModelState.AddModelError("ReleaseYear", "Invalid date");
            }

            var coverPicUpload = Request.Files["coverPicUpload"];
            var pictureData    = ParsePicture(coverPicUpload, "CoverPicture");

            if (coverPicUpload == null)
            {
                AddFormSubmissionError("Cover picture was null");
            }

            if (model.Pictures == null)
            {
                AddFormSubmissionError("List of pictures was null");
            }

            if (coverPicUpload != null && model.Pictures != null)
            {
                ParseAdditionalPictures(coverPicUpload, model.Pictures);
            }

            if (!ModelState.IsValid)
            {
                return(View(CreateAlbumEditViewModel(model.Id, model)));
            }

            try {
                queries.UpdateBasicProperties(model, pictureData);
            } catch (InvalidPictureException) {
                ModelState.AddModelError("ImageError", "The uploaded image could not processed, it might be broken. Please check the file and try again.");
                return(View(CreateAlbumEditViewModel(model.Id, model)));
            }

            return(RedirectToAction("Details", new { id = model.Id }));
        }
Exemplo n.º 9
0
 public static string FormatReleaseDate(OptionalDateTimeContract contract)
 {
     return(OptionalDateTime.ToDateTime(contract.Year, contract.Month, contract.Day).ToShortDateString());
 }
Exemplo n.º 10
0
 private void TestCompareTo(int expected,
                            OptionalDateTime first, OptionalDateTime second)
 {
     first.CompareTo(second).Should().Be(expected, "Comparing " + first + " to " + second);
 }