Пример #1
0
        public ActionResult Create(Event event1)
        {
            if (event1.CatagoryId < 1)
            {
                ModelState.AddModelError("", "catagory is required");
                ViewBag.Catagories = db.EventCatagories.ToList();
                ViewBag.Speakers   = db.Speakers.ToList();
                return(View(event1));
            }
            for (int i = 0; i < event1.SpeakerId.Length; i++)
            {
                if (event1.SpeakerId[i] < 1)
                {
                    ModelState.AddModelError("", "speaker is required");
                    ViewBag.Catagories = db.EventCatagories.ToList();
                    ViewBag.Speakers   = db.Speakers.ToList();
                    return(View(event1));
                }
            }

            if (ModelState.IsValid)
            {
                if (event1.ImageFile == null)
                {
                    ModelState.AddModelError("ImageFile", "image is requred");
                    ViewBag.Catagories = db.EventCatagories.ToList();
                    ViewBag.Speakers   = db.Speakers.ToList();
                    return(View(event1));
                }
                else
                {
                    string imageName = DateTime.Now.ToString("ddMMyyyyHHmmssfff") + event1.ImageFile.FileName;
                    string imagePath = Path.Combine(Server.MapPath("~/Uploads/"), imageName);

                    event1.ImageFile.SaveAs(imagePath);
                    event1.Image = imageName;
                }
                db.Events.Add(event1);
                db.SaveChanges();

                for (int i = 0; i < event1.SpeakerId.Length; i++)
                {
                    SpeakerEvent speakerEvent = new SpeakerEvent();
                    speakerEvent.EventId   = event1.Id;
                    speakerEvent.SpeakerId = event1.SpeakerId[i];

                    db.SpeakerEvents.Add(speakerEvent);
                    db.SaveChanges();
                }
                return(RedirectToAction("Index"));
            }


            ViewBag.Catagories = db.EventCatagories.ToList();
            ViewBag.Speakers   = db.Speakers.ToList();
            return(View(event1));
        }
Пример #2
0
        //Admin/SpeakerEvent/Delete
        public ActionResult Delete(int id)
        {
            if (Session["Admin"] != null)
            {
                SpeakerEvent speakerEvent = db.SpeakerEvents.Find(id);
                if (speakerEvent == null)
                {
                    return(HttpNotFound());
                }
                db.SpeakerEvents.Remove(speakerEvent);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(RedirectToAction("Login", "Login"));
        }
Пример #3
0
        //Admin/SpeakerEvent/Update
        public ActionResult Update(int id)
        {
            if (Session["Admin"] != null)
            {
                SpeakerEvent speakerEvent = db.SpeakerEvents.Find(id);

                if (speakerEvent == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.Speaker = db.Speakers.ToList();
                ViewBag.Event   = db.Events.ToList();

                return(View(speakerEvent));
            }
            return(RedirectToAction("Login", "Login"));
        }
Пример #4
0
        public ActionResult Update(SpeakerEvent speakerEvent)
        {
            if (Session["Admin"] != null)
            {
                if (ModelState.IsValid)
                {
                    db.Entry(speakerEvent).State = EntityState.Modified;

                    db.SaveChanges();
                    return(RedirectToAction("Index"));
                }
                ViewBag.Speaker = db.Speakers.ToList();
                ViewBag.Event   = db.Events.ToList();

                return(View(speakerEvent));
            }
            return(RedirectToAction("Login", "Login"));
        }
Пример #5
0
        public IActionResult NewBooking(Booking booking)
        {
            if (!ModelState.IsValid)
            {
                return(View(booking));
            }
            SpeakerEvent speakerEvent = _db.Events.FirstOrDefault(x => x.Id == booking.EventId);

            lock (speakerEvent)
            {
                if (speakerEvent.RemainingTickets < booking.NumberOfTickets)
                {
                    return(View(booking));
                }
                speakerEvent.RemainingTickets -= booking.NumberOfTickets;
                _db.Update(speakerEvent);
                _db.Add(booking);
                _db.SaveChanges();
            }

            return(RedirectToAction("ThankYou"));
        }
Пример #6
0
        public async Task <IActionResult> Create([FromForm] UpComingEventCreateVM upComingEventCreateVM)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (!upComingEventCreateVM.Photo.IsImage())
            {
                ModelState.AddModelError("Photo", "Zehmet olmasa shekil formati sechin");
                return(BadRequest(ModelState));
            }

            if (upComingEventCreateVM.Photo.MaxLength(2000))
            {
                ModelState.AddModelError("Photo", "Shekilin olchusu max 200kb ola biler");
                return(BadRequest(ModelState));
            }
            if (upComingEventCreateVM.SpeakerEventsId == null)
            {
                ModelState.AddModelError("", "Speaker Secmelisiniz!");
                return(BadRequest(ModelState));
            }
            string        path          = Path.Combine("img", "event");
            UpComingEvent upComingEvent = new UpComingEvent
            {
                Title       = upComingEventCreateVM.Title,
                Image       = await upComingEventCreateVM.Photo.SaveImg(_env.WebRootPath, path),
                Month       = upComingEventCreateVM.Month,
                Day         = upComingEventCreateVM.Day,
                Location    = upComingEventCreateVM.Location,
                StartTime   = upComingEventCreateVM.StartTime,
                EndTime     = upComingEventCreateVM.EndTime,
                Description = upComingEventCreateVM.Description,
                CategoryId  = upComingEventCreateVM.CategoryId
            };



            await _db.UpComingEvents.AddAsync(upComingEvent);

            await _db.SaveChangesAsync();

            foreach (var speakerId in upComingEventCreateVM.SpeakerEventsId)
            {
                var speaker = _db.Speakers.Include(p => p.SpeakerEvents).ThenInclude(p => p.UpComingEvent).FirstOrDefault(p => p.Id == speakerId);
                foreach (var se in speaker.SpeakerEvents)
                {
                    if (upComingEvent.StartTime > se.UpComingEvent.StartTime && upComingEvent.EndTime < se.UpComingEvent.EndTime)
                    {
                        ModelState.AddModelError("", "Busy");
                        return(BadRequest(ModelState));
                    }
                }
                SpeakerEvent speakerEvent = new SpeakerEvent
                {
                    SpeakerId       = speakerId,
                    UpComingEventId = upComingEvent.Id
                };
                _db.SpeakerEvents.Add(speakerEvent);

                await _db.SaveChangesAsync();
            }
            var callbackUrl = Url.Action(
                "Detail",
                "Event",
                new { Id = upComingEventCreateVM.Id },
                protocol: HttpContext.Request.Scheme);
            EmailService  email = new EmailService();
            List <string> e     = _db.Subscriptions.Select(x => x.Email).ToList();
            await email.SendEmailAsync(e, "Yeni event",
                                       "Yeni event: <a href=https://localhost:44375/Event/Detail/" + $"{upComingEvent.Id}" + ">link</a>");


            return(Ok($"{upComingEvent.Id} li element yaradildi"));
        }