Esempio n. 1
0
        public async Task <ServiceResponse <GetAnnouncementDto> > UpdateAnnouncement(UpdateAnnouncementDto updatedAnnouncement)
        {
            ServiceResponse <GetAnnouncementDto> serviceResponse = new ServiceResponse <GetAnnouncementDto>();

            try {
                Announcement announcement = await _context.Announcements.FirstOrDefaultAsync(a => a.announceId == updatedAnnouncement.announceID);

                announcement.title       = updatedAnnouncement.title;
                announcement.subtitle    = updatedAnnouncement.subtitle;
                announcement.description = updatedAnnouncement.description;
                announcement.isImportant = updatedAnnouncement.isImportant;
                announcement.validTill   = updatedAnnouncement.validTill;
                announcement.lastUpdated = DateTime.Now.ToString();

                _context.Announcements.Update(announcement);
                await _context.SaveChangesAsync();

                serviceResponse.Data = _mapper.Map <GetAnnouncementDto>(announcement);
            } catch (Exception ex)
            {
                serviceResponse.Success = false;
                serviceResponse.Message = ex.Message;
            }

            return(serviceResponse);
        }
        public async Task <IActionResult> Update(
            [FromRoute] int announcementId,
            [FromBody] UpdateAnnouncementDto announcementDto)
        {
            var userOwnsAnnouncement
                = await _announcementRepository.UserOwnsAnnouncementAsync(
                      announcementId, HttpContext.GetUserId());

            if (!userOwnsAnnouncement)
            {
                return(BadRequest(new { Error = "You do not own this announcement" }));
            }

            var announcement = await _announcementRepository.FindByIdAsync(announcementId);

            announcement.Name        = announcementDto.Name;
            announcement.Type        = (AnnouncementType)Enum.Parse(typeof(AnnouncementType), announcementDto.Type);
            announcement.Description = announcementDto.Description;
            announcement.Image       = announcementDto.Image;

            var updated = await _announcementRepository.UpdateAsync(announcement);

            if (updated)
            {
                return(Ok(announcement));
            }

            return(NotFound(new { Error = "Announcement was not found." }));
        }
Esempio n. 3
0
        public async Task <bool> UpdateAnnouncementAsync(int id, UpdateAnnouncementDto announcement)
        {
            var response = await _httpClient.PutAsJsonAsync(
                ApiRoutes.Announcements.Update.Replace("{announcementId}", id.ToString()), announcement);

            return(response.IsSuccessStatusCode);
        }
        public async Task <IActionResult> UpdateAnnouncement(UpdateAnnouncementDto updatedAnnouncement)
        {
            ServiceResponse <GetAnnouncementDto> response = await _announcementService.UpdateAnnouncement(updatedAnnouncement);

            if (response.Data == null)
            {
                return(NotFound(response));
            }

            return(Ok(response));
        }
Esempio n. 5
0
        public async Task <IActionResult> OnPostAsync()
        {
            OldAnnouncement = await _apiAnnouncementClient.GetAnnouncementByIdAsync(CurrentAnnouncementId);

            var updateAnnouncementDto = new UpdateAnnouncementDto
            {
                Name        = Name,
                Type        = Type.ToString(),
                Description = Description,
                Image       = OldAnnouncement.Image
            };


            if (ImageFile != null)
            {
                if (!ModelState.IsValid)
                {
                    return(Page());
                }

                MemoryStream ms = new MemoryStream();
                await ImageFile.CopyToAsync(ms);

                updateAnnouncementDto.Image = ms.ToArray();

                ms.Close();
                ms.Dispose();
            }

            var success = await _apiAnnouncementClient.UpdateAnnouncementAsync(
                OldAnnouncement.Id, updateAnnouncementDto);

            if (!success)
            {
                ModelState.AddModelError("UnknownError", "Something went wrong updating the announcement...");
                return(Page());
            }
            return(RedirectToPage("/PostManagement/Manage"));
        }