Beispiel #1
0
        public ActionResult Create([Bind(Include = "EventType,EventId,EventName,EventDesc,Phone,Email,Start_date,End_date,Street,Surburb,State,PostCode,PosterImage")] EventCreateViewModel @event)
        {
            // Enumerate all event types and passing into ViewBag.
            List <Type> types           = db.Types.ToList();
            SelectList  selectListItems = new SelectList(types, "TypeId", "TypeName");

            ViewBag.TypeList = selectListItems;

            // If no file is uploaded.
            if (Request.Files.Count == 0)
            {
                return(View(@event));
            }

            if (ModelState.IsValid)
            {
                // Validate the date range.
                if (@event.Start_date > DateTime.Now && @event.End_date < @event.Start_date)
                {
                    return(View(@event));
                }
                // Save the file.
                var fileLoc = SavePoster(Request.Files[0]);
                // Convert CreateEventViewModel to entity Event.
                Event newEvent = @event.ToEvent();
                // Get creater's id.
                var userId = User.Identity.GetUserId();
                // Assign to entity.
                newEvent.OwnerId = userId;

                // If uploaded failed, use empty string instead.
                if (fileLoc.Result == null)
                {
                    newEvent.PosterImg = "";
                }
                else
                {
                    newEvent.PosterImg = fileLoc.Result;
                }
                // Save
                db.Events.Add(newEvent);
                db.SaveChanges();
                return(RedirectToAction("Index", "Event"));
            }

            return(View(@event));
        }