Ejemplo n.º 1
0
        public IActionResult Post([FromBody] AddEventViewModel eventToAdd)
        {
            if (!IsMerchant())
            {
                return(BadRequest(new { error = "De voorziene token voldoet niet aan de eisen." }));
            }

            //modelstate werkt niet op lijsten :-D
            if (eventToAdd.Images == null || !eventToAdd.Images.Any())
            {
                return(BadRequest(new { error = "Geen afbeelding(en) meegeven." }));
            }

            if (!ContainsJpgs(eventToAdd.Images))
            {
                return(BadRequest(new { error = "Geen jpg afbeelding(en) meegeven" }));
            }

            if (eventToAdd.StartDate == null)
            {
                return(BadRequest(new { error = "Geen start datum meegeven." }));
            }

            if (eventToAdd.EndDate == null)
            {
                return(BadRequest(new { error = "Geen eind datum meegeven." }));
            }


            if (ModelState.IsValid)
            {
                Establishment establishmentFromDb = _establishmentRepository.getById(eventToAdd.EstablishmentId ?? 0);

                if (establishmentFromDb == null)
                {
                    return(BadRequest(new { error = "Vestiging met opgegeven id niet gevonden" }));
                }

                if (!_establishmentRepository.isOwnerOfEstablishment(int.Parse(User.FindFirst("userId")?.Value), establishmentFromDb.EstablishmentId))
                {
                    return(BadRequest(new { error = "Vestiging behoord niet tot uw vestigingen" }));
                }

                Event newEvent = new Event
                {
                    Name      = eventToAdd.Name,
                    Message   = eventToAdd.Message,
                    StartDate = (DateTime)eventToAdd.StartDate,
                    EndDate   = (DateTime)eventToAdd.EndDate
                };

                _eventRepository.addEvent(eventToAdd.EstablishmentId ?? 0, newEvent);

                //we hebben id nodig voor img path dus erna
                newEvent.Images      = ConvertFileViewModelToImages(eventToAdd.Images, newEvent.EventId);
                newEvent.Attachments = ConvertFileViewModelToAttachments(eventToAdd.Attachments, newEvent.EventId);
                _eventRepository.SaveChanges();

                return(Ok(new { bericht = "Het evenement werd succesvol toegevoegd." }));
            }
            //Als we hier zijn is is modelstate niet voldaan dus stuur error 400, slechte aanvraag
            string errorMsg = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));

            return(BadRequest(new { error = errorMsg }));
        }
Ejemplo n.º 2
0
        public IActionResult Put(int id, [FromBody] ModifyEstablishmentViewModel editedEstablishment)
        {
            if (ModelState.IsValid)
            {
                if (!IsMerchant())
                {
                    return(BadRequest(new { error = "De voorziene token voldoet niet aan de eisen." }));
                }

                Establishment establishment = _establishmentRepository.getById(id);

                if (establishment == null)
                {
                    return(BadRequest(new { error = "Vestiging met meegegeven id niet gevonden." }));
                }

                if (!_establishmentRepository.isOwnerOfEstablishment(int.Parse(User.FindFirst("userId")?.Value), id))
                {
                    return(BadRequest(new { error = "Vestiging behoord niet tot uw vestigingen." }));
                }

                //alles ok, mag editen

                if (!string.IsNullOrEmpty(editedEstablishment.Name))
                {
                    establishment.Name = editedEstablishment.Name;
                }

                if (!string.IsNullOrEmpty(editedEstablishment.Description))
                {
                    establishment.Description = editedEstablishment.Description;
                }

                if (!string.IsNullOrEmpty(editedEstablishment.PostalCode))
                {
                    establishment.PostalCode = editedEstablishment.PostalCode;
                }

                if (!string.IsNullOrEmpty(editedEstablishment.City))
                {
                    establishment.City = editedEstablishment.City;
                }

                if (!string.IsNullOrEmpty(editedEstablishment.Street))
                {
                    establishment.Street = editedEstablishment.Street;
                }

                if (!string.IsNullOrEmpty(editedEstablishment.HouseNumber))
                {
                    establishment.HouseNumber = editedEstablishment.HouseNumber;
                }

                if (editedEstablishment.Categories != null && editedEstablishment.Categories.Any())
                {
                    establishment.EstablishmentCategories = ConvertCategoryViewModelsToCategory(editedEstablishment.Categories);
                }

                if (editedEstablishment.SocialMedias != null && editedEstablishment.SocialMedias.Any())
                {
                    establishment.EstablishmentSocialMedias =
                        ConvertEstablishmentSocialMediasViewModelsToEstablishmentSocialMedias(editedEstablishment
                                                                                              .SocialMedias);
                }

                if (editedEstablishment.OpenDays != null && editedEstablishment.OpenDays.Any())
                {
                    establishment.OpenDays = ConvertOpenDaysViewModelsToOpenDays(editedEstablishment.OpenDays);
                }

                if (editedEstablishment.ExceptionalDays != null && editedEstablishment.ExceptionalDays.Any())
                {
                    establishment.ExceptionalDays = ConvertExceptionalDaysViewModelsToExceptionalDays(editedEstablishment.ExceptionalDays);
                }

                if (editedEstablishment.Images != null && editedEstablishment.Images.Any())
                {
                    var images = ConvertFileViewModelToImages(editedEstablishment.Images, id);
                    if (images.Any())
                    {
                        establishment.Images = images;
                    }
                }

                _companyRepository.SaveChanges();
                return(Ok(new { bericht = "De vestiging werd succesvol bijgewerkt." }));
            }
            //Als we hier zijn is is modelstate niet voldaan dus stuur error 400, slechte aanvraag
            string errorMsg = string.Join(" | ", ModelState.Values.SelectMany(v => v.Errors).Select(e => e.ErrorMessage));

            return(BadRequest(new { error = errorMsg }));
        }