public ActionResult CreateAnnouncement(AnnouncementCreateDTO announcementDTO, int id)
        {
            try
            {
                ApplicationUser user = _userRepository.GetUserBy(User.Identity.Name);
                if (user is null || !user.Type.Equals(UserType.STAFF))
                {
                    return(Unauthorized());
                }

                Passenger receiver = null;
                if (announcementDTO.PassengerId != null)
                {
                    receiver = (Passenger)_userRepository.GetUserById((int)announcementDTO.PassengerId);
                }

                Announcement announcement = new Announcement
                {
                    Title    = announcementDTO.Title,
                    Content  = announcementDTO.Content,
                    Sender   = (Staff)user,
                    Receiver = receiver
                };
                _flightRepository.CreateAnnouncement(id, announcement);
                _flightRepository.SaveChanges();
                return(Created("", AnnouncementDTO.FromAnnouncement(announcement)));
            }
            catch (Exception e) { return(BadRequest(e.Message)); }
        }
        public HttpResponseMessage NewAnnouncement([FromBody] AnnouncementCreateDTO announcement)
        {
            if (ModelState.IsValid)
            {
                Announcement entity = new Announcement
                {
                    CategoryId     = announcement.CategoryId,
                    Description    = announcement.Description,
                    Email          = announcement.Email,
                    Phonenumber    = announcement.Phonenumber,
                    Title          = announcement.Title,
                    PostDate       = DateTime.Now,
                    ExpirationDate = DateTime.Now.AddMonths(1),
                    Confirmed      = false
                };

                using (SummerCampDbContext ctx = new SummerCampDbContext())
                {
                    ctx.Announcements.Add(entity);
                    ctx.SaveChanges();
                }

                HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created, entity);
                //string uri = Url.Link("DefaultApi", new { Id = entity.AnnouncementId });
                //response.Headers.Location = new Uri(uri);
                return(response);
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> CreateAnnouncement(AnnouncementViewModel vm)
        {
            if (ModelState.IsValid)
            {
                AnnouncementCreateDTO entity = new AnnouncementCreateDTO
                {
                    CategoryId  = vm.CategoryId,
                    Title       = vm.Title,
                    Description = vm.Description,
                    Email       = vm.Email,
                    Phonenumber = vm.Phonenumber
                };
                string url = "http://api.summercamp.stage02.netromsoftware.ro/api/announcements/NewAnnouncement";
                using (HttpClient httpClient = new HttpClient())
                {
                    JavaScriptSerializer serialize = new JavaScriptSerializer();
                    serialize.Serialize(entity);
                    var json = new JavaScriptSerializer().Serialize(entity);

                    StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

                    HttpClient client = new HttpClient();

                    HttpResponseMessage response = await client.PostAsync(url, content);

                    return(RedirectToAction("Index"));
                }
            }

            return(View("Error"));
        }