예제 #1
0
 public ActionResult AddNewEvntPost(evnt ev)
 {
     if (ev.evnt_name == "" || ev.evnt_sdt == null || ev.evnt_edt == null)
     {
         ViewBag.error = "Please Fill all fields";
         return(View());
     }
     else
     {
         evrepo.Insert(ev);
         return(RedirectToAction("ViewEvnt", new { evnt_id = ev.evnt_id, evnt_name = ev.evnt_name }));
     }
 }
예제 #2
0
        public async Task <IActionResult> SaveEvent([FromBody] evnt edata)
        {
            User user = _helperService.GetUser();

            if (user == null)
            {
                return(Ok(new ErrorDto {
                    StatusCode = StatusCodes.Status401Unauthorized, Message = "Unauthorized"
                }));
            }
            else
            {
                var Eventmodel = await _context.Event.Include(x => x.Calendar).Where(x => x.Id == edata.Id).SingleOrDefaultAsync();

                if (Eventmodel != null)
                {
                    _context.Entry <Event>(Eventmodel).State = EntityState.Detached;
                }
                Event evt = new Event();
                if (edata.Id == 0)
                {
                    Calendar caln = new Calendar();
                    caln.AddedOn = DateTime.Now;
                    await _context.Calendar.AddAsync(caln);

                    evt.Title       = edata.Title;
                    evt.StartTime   = edata.Start;
                    evt.EndTime     = edata.End;
                    evt.Description = edata.Description;
                    evt.Status      = 0;
                    evt.CalendarId  = caln.Id;
                    evt.UID         = Guid.NewGuid().ToString();
                    evt.Companyid   = user.CompanyId;
                    evt.EventType   = 1;
                    await _context.AddAsync(evt);

                    List <EventUser> plist = new List <EventUser>();
                    foreach (long pid in edata.Participantids.Distinct().ToArray())
                    {
                        EventUser puser = new EventUser();
                        puser.ParticipantId = pid;
                        puser.Status        = 0;
                        puser.EventId       = evt.Id;
                        if (pid == user.Id)
                        {
                            puser.IsOrganizer = true;
                        }
                        plist.Add(puser);
                    }

                    _context.AddRange(plist);
                }
                else
                {
                    evt.Id = edata.Id;
                    _context.Event.Attach(evt);
                    evt.Title       = edata.Title;
                    evt.StartTime   = edata.Start;
                    evt.EndTime     = edata.End;
                    evt.Description = edata.Description;
                    evt.Status      = edata.Status;
                    List <EventUser> plist = new List <EventUser>();
                    foreach (long pid in edata.Participantids.Distinct().ToArray())
                    {
                        EventUser puser = new EventUser();
                        puser.EventId       = evt.Id;
                        puser.ParticipantId = pid;
                        puser.Status        = 0;
                        if (pid == user.Id)
                        {
                            puser.IsOrganizer = true;
                        }
                        plist.Add(puser);
                    }
                    var model = _context.Event
                                .Include(x => x.Participants)
                                .FirstOrDefault(x => x.Id == evt.Id);
                    _context.TryUpdateManyToMany(model.Participants, plist
                                                 .Select(x => new EventUser
                    {
                        ParticipantId = x.ParticipantId,
                        EventId       = evt.Id,
                        IsOrganizer   = x.IsOrganizer,
                        Status        = x.Status
                    }), x => x.ParticipantId, true);
                }
                await _context.SaveChangesAsync();

                return(await GetEvent(evt.Id));
            }
        }