public async Task <ActionResult> Create(Attende attende, List <int> events, HttpPostedFileBase thumbnail) { try { string fileName = ""; if (thumbnail != null) { fileName = Guid.NewGuid().ToString() + ".png"; } if (attende.ID == 0) { attende.AddedBY = CurrentUserSession.UserID; } attende.Thumbnail = fileName; await attendBuisness.AddUpdateAttendee(attende, events); if (thumbnail != null) { thumbnail.SaveAs(Path.Combine(ImageSavePath, fileName)); } return(RedirectToAction("Index")); } catch (Exception ex) { Helpers.LogError("Atted create error", ex); EventLogic eventLogic = new EventLogic(); ViewBag.Events = await eventLogic.GetAllEvents(); ViewBag.Error = Literals.ErrorMessage; return(View(attende)); } }
private void AddAttendeeBookMarks(string email) { Attende attendee = Db.Attendes.FirstOrDefault(x => x.Email == email) ?? throw new NullReferenceException("Email is not found"); foreach (var attendesEvent in attendee.AttendesEvents) { AddAttendeeBookMarksOfEvent(email, attendesEvent.EventID); } }
public async Task SendCommentNotificationToAttendee(Attende attendee, int eventID, string title, string message, int sentBy) { var distinctDeviceTokenSessions = attendee.BookMarks.SelectMany(x => x.Attende.UserSessions).Where(x => x.IsActive == true && x.Platform != "Web" && !string.IsNullOrEmpty(x.DeviceToken)).Distinct(new UserDeviceTokenComparer()).ToList(); Notifications notifications = new Notifications(); var notificationID = await notifications.MaintainNotificationHistory(eventID, title, message, sentBy); EventLogic eventLogic = new EventLogic(); await eventLogic.SendNotificationForSessions(distinctDeviceTokenSessions, title, message, eventID, sentBy, notificationID); }
public async Task <ActionResult> DeleteUser(int id) { Attende appUser = await db.Attendes.FindAsync(id); //db.Attendes.Remove(appUser); db.DeleteAttendee(id); await db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public void AddNewAdminToEventChannels(Attende attende, int eventID) { var eventObj = Db.Events.Find(eventID); var eventAdminChannels = eventObj.ChatChannels.Where(y => y.IsAdminChannel); foreach (var channel in eventAdminChannels) { AddNewAdminToChannel(attende, channel.ID); } Db.SaveChanges(); }
public void AddNewAdminToChannel(Attende attende, int channelDbID) { var channelSID = Db.ChatChannels.Find(channelDbID).ChannelID; var memberSID = createMember(attende.Email, channelSID, Newtonsoft.Json.JsonConvert.SerializeObject(new { Name = attende.FirstName })); Db.ChannelUsers.Add(new ChannelUser() { AttendeeID = attende.ID, ChannelID = channelDbID, MemberSID = memberSID }); }
// GET: Speakers/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Attende attende = await attendBuisness.GetAttendee(id.Value); if (attende == null) { return(HttpNotFound()); } return(View(attende)); }
public async Task <HttpResponseMessage> DoReservation(string email, DateTime start, DateTime end) { Attende att = new Attende { role = "req-participant", rsvp = true, userType = "room", status = "needs-action", email = email }; List <Attende> at = new List <Attende>(); at.Add(att); List <Events> eveList = new List <Events>(); Events ev = new Events { summary = "Quick Reservation", transparency = "opaque", sequence = 0, organizer = new MeetingOrganizer { displayName = "Quick Reservation", email = this.config["lotus:email"] }, start = new DateMeeting { date = start.Year + "-" + start.Month + "-" + start.Day, time = (start.Hour - int.Parse(this.config["lotus:utc"])) + ":" + start.Minute + ":00", utc = true }, end = new DateMeeting { date = end.Year + "-" + end.Month + "-" + end.Day, time = (end.Hour - int.Parse(this.config["lotus:utc"])) + ":" + end.Minute + ":00", utc = true }, attendees = at }; eveList.Add(ev); EventsList eve = new EventsList { events = eveList }; var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(eve); HttpResponseMessage response = await DoPostAsync(jsonString); return(response); }
//// GET: AppUsers/Edit/5 //public async Task<ActionResult> Edit(int? id) //{ // if (id == null) // { // return new HttpStatusCodeResult(HttpStatusCode.BadRequest); // } // AppUser appUser = await db.AppUsers.FindAsync(id); // if (appUser == null) // { // return HttpNotFound(); // } // return View(appUser); //} // POST: AppUsers/Edit/5 // To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://go.microsoft.com/fwlink/?LinkId=317598. //[HttpPost] //[ValidateAntiForgeryToken] //public async Task<ActionResult> Edit([Bind(Include = "Id,FirstName,LastName,Email,Password,PhoneNumber,UserRole")] AppUser appUser) //{ // if (ModelState.IsValid) // { // db.Entry(appUser).State = EntityState.Modified; // await db.SaveChangesAsync(); // return RedirectToAction("Index"); // } // return View(appUser); //} // GET: AppUsers/Delete/5 public async Task <ActionResult> Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Attende appUser = await db.Attendes.FindAsync(id); if (appUser == null) { return(HttpNotFound()); } return(View(appUser)); }
public void UpdateUserProfile(Attende attende, int attendesID, string ImageSavePath) { var dbAttendee = Db.Attendes.Find(attendesID); dbAttendee.FirstName = attende.FirstName; dbAttendee.Description = attende.Description; dbAttendee.FacebookURL = attende.FacebookURL; dbAttendee.TwitterURL = attende.TwitterURL; dbAttendee.InstagramURL = attende.InstagramURL; dbAttendee.LinkedinURL = attende.LinkedinURL; dbAttendee.Lastname = attende.Lastname; dbAttendee.CompanyName = attende.CompanyName; dbAttendee.TitleName = attende.TitleName; dbAttendee.Website = attende.Website; if (dbAttendee.IsUploadedImage == false) { dbAttendee.Thumbnail = GenerateImageFromName(attende.FirstName, attende.Lastname, ImageSavePath); } Db.SaveChanges(); }
private string GetAttendeeFullName(int attendeeId) { Attende attende = Db.Attendes.FirstOrDefault(s => s.ID == attendeeId); return(string.Concat(attende.FirstName, ' ', attende.Lastname)); }
public async Task <GPSAPILogin1> AttendiLogin(string email, string password, enPlatformTypes platform, string deviceToken, string isactive, Func <string, string> imageConvertionHandler, string imageSavePath, string mobileOSVersion, string mobileDeviceUniqueToken) { try { var client = new RestClient(string.Format("{0}/eventapp/api/Login", GalacticConfigs.GalacticApiBaseUrl)); var request = new RestRequest(Method.POST); List <Event> AccessList = new List <Event>(); GPSAPILogin1 accessEvents = new GPSAPILogin1(); AttendesLogic attendesLogic = new AttendesLogic(); request.AddHeader("cache-control", "no-cache"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", string.Format("{{\n\tEmail:'{0}',\n\tPassword:'******',\n\tToken:'{2}'\n}}", email, password, GalacticApiSecretKeyEncoded), ParameterType.RequestBody); IRestResponse <GPSAPILogin> response2 = client.Execute <GPSAPILogin>(request); EventLogic eventLogic = new EventLogic(); Attende attende; if (response2.Data == null) { throw response2.ErrorException; } bool isAdmin = await IsAdmin(email, password); if (response2.Data.IsAuthenticated || isAdmin) { LogoutExistingUsersWithSameFBToken(deviceToken); attende = await Db.Attendes.FirstOrDefaultAsync(x => x.Email == email); string authToken; // Guid.NewGuid().ToString("n"); response2.Data.Message = null; response2.Data.IsAuthenticated = true; response2.Data.HasPassword = true; if (attende == null) { attende = new Attende { Email = email, Thumbnail = attendesLogic.GenerateImageFromName(response2.Data.FirstName, response2.Data.LastName, imageSavePath), AddedON = DateTime.Now, FirstName = response2.Data.FirstName, Lastname = response2.Data.LastName, IsSpeaker = response2.Data.AttendeeType?.ToLower() == "speaker" }; Db.Attendes.Add(attende); Db.SaveChanges(); authToken = Authenticate.GenerateToken(attende.ID); response2.Data.Token = authToken; attende.UserSessions.Add(new UserSession { AuthToken = authToken, IsActive = (isactive == "0" ? false : true), Platform = platform.ToString(), CreateDate = DateTime.Now, DeviceToken = deviceToken }); Db.SaveChanges(); foreach (var item in response2.Data.UserEvents) { if (Db.Events.Any(x => x.GalacticEventId == item.GalacticEventID)) { var eventRecord = Db.Events.FirstOrDefault(x => x.GalacticEventId == item.GalacticEventID); if (!Db.AttendesEvents.Any(x => x.AttendesID == attende.ID && x.EventID == eventRecord.ID)) { Db.AttendesEvents.Add(new AttendesEvent { AttendesID = attende.ID, EventID = eventRecord.ID, }); } } else { //create event if not exsit //add event activities var eventActivities = EventActivities(item.GalacticEventID); var @event = new Event { GalacticEventId = item.GalacticEventID, EventName = item.EventName, AttendesEvents = new List <AttendesEvent> { new AttendesEvent { AttendesID = attende.ID } }, Activites = eventActivities.ProgramActivities.Select(x => new Activite { StartTime = x.ActivityStartTime.ToSafeDate(), EndTime = x.ActivityEndTime.ToSafeDate(), CreateON = DateTime.Now, Description = x.ActivityName, }).ToList() }; await eventLogic.AddUpdateEvent(@event); } } await Db.SaveChangesAsync(); } else { authToken = Authenticate.GenerateToken(attende.ID); response2.Data.Token = authToken; foreach (var item in response2.Data.UserEvents) { if (Db.Events.Any(x => x.GalacticEventId == item.GalacticEventID)) { if (!Db.AttendesEvents.Any(x => x.AttendesID == attende.ID)) { Db.AttendesEvents.Add(new AttendesEvent { AttendesID = attende.ID, EventID = Db.Events.FirstOrDefault(x => x.GalacticEventId == item.GalacticEventID).ID, }); } } else { //create event if not exsit var @event = new Event { GalacticEventId = item.GalacticEventID, EventName = item.EventName, AttendesEvents = new List <AttendesEvent> { new AttendesEvent { AttendesID = attende.ID } } }; await eventLogic.AddUpdateEvent(@event); } } attende.UserSessions.Add(new UserSession { AuthToken = authToken, IsActive = (isactive == "0" ? false : true), Platform = platform.ToString(), CreateDate = DateTime.Now, DeviceToken = deviceToken, MobileOSVersion = mobileOSVersion, MobileDeviceUniqueToken = mobileDeviceUniqueToken }); await Db.SaveChangesAsync(); } //if (!isAdmin) //{ // foreach (var item in response2.Data.UserEvents) // { // var detailing = Db.Events.Where(x => x.GalacticEventId == item.GalacticEventID).FirstOrDefault(); // if (detailing != null) // { // AccessList.Add(detailing); // } // } //} //else //{ AccessList = Db.AttendesEvents.Where(x => x.AttendesID == attende.ID).Select(x => x.Event).ToList(); //} accessEvents.Token = response2.Data.Token; accessEvents.Email = response2.Data.Email; accessEvents.IsAuthenticated = response2.Data.IsAuthenticated; accessEvents.Message = response2.Data.Message; accessEvents.HasPassword = response2.Data.HasPassword; accessEvents.IsValid = response2.Data.IsValid; accessEvents.UserID = attende.ID; accessEvents.UserFullName = $"{attende.FirstName} {attende.Lastname}"; accessEvents.isAdmin = attende.IsAdmin; accessEvents.UserIcon = imageConvertionHandler(attende.Thumbnail); accessEvents.UserEvents = CreateLoginEventDataEntity(AccessList, imageConvertionHandler, email).ToList(); return(accessEvents); } else { //if(attende == null) //{ // throw new System.Web.HttpException((int)HttpStatusCode.Unauthorized, "Not Authorized"); //} //response2.Data.UserEvents = new List<APIUserEvents>(); } foreach (var item in response2.Data.UserEvents) { var detailing = Db.Events.Where(x => x.GalacticEventId == item.GalacticEventID).FirstOrDefault(); if (detailing != null) { AccessList.Add(detailing); } } accessEvents.Token = response2.Data.Token; accessEvents.Email = response2.Data.Email; accessEvents.IsAuthenticated = response2.Data.IsAuthenticated; accessEvents.Message = response2.Data.Message; accessEvents.Password = password; accessEvents.HasPassword = response2.Data.HasPassword; accessEvents.IsValid = response2.Data.IsValid; accessEvents.UserEvents = CreateLoginEventDataEntity(AccessList, imageConvertionHandler, email).ToList(); return(accessEvents); } catch (Exception ex) { throw ex; } }
public async Task <ActionResult> Create(Attende appUser, AdminInfo adminInfo, List <int> events) { try { ChatLogic chatLogic = new ChatLogic(); if (appUser.ID > 0) { var update = await db.Attendes.FindAsync(appUser.ID); update.FirstName = appUser.FirstName; update.Lastname = appUser.Lastname; update.Email = appUser.Email.Trim(); update.AdminInfo.UserRole = adminInfo.UserRole; update.AdminInfo.Password = adminInfo.Password; update.AdminInfo.PhoneNumber = adminInfo.PhoneNumber; if (events == null) { var removeAll = db.AttendesEvents.Where(x => x.AttendesID == appUser.ID).ToList(); db.AttendesEvents.RemoveRange(removeAll); await db.SaveChangesAsync(); } else { var removeEvent = db.AttendesEvents.Where(x => x.AttendesID == appUser.ID && !events.Contains(x.EventID)); if (removeEvent.Any()) { db.AttendesEvents.RemoveRange(removeEvent); await db.SaveChangesAsync(); } foreach (var item in events) { if (!db.AttendesEvents.Any(x => x.EventID == item && x.AttendesID == appUser.ID)) { db.AttendesEvents.Add(new AttendesEvent { EventID = item, AttendesID = appUser.ID }); chatLogic.AddNewAdminToEventChannels(appUser, item); } } } await db.SaveChangesAsync(); } else { if (db.Attendes.Any(x => string.Equals(x.Email.Trim(), appUser.Email.Trim(), StringComparison.CurrentCultureIgnoreCase))) { EventLogic eventLogic = new EventLogic(); ViewBag.Events = await eventLogic.GetAllEvents(); ModelState.AddModelError("Email", "Email already exists. Please try any other Email"); ModelState.AddModelError(String.Empty, "Failed"); return(View(appUser)); } appUser.AdminInfo = adminInfo; appUser.Email = appUser.Email.Trim(); appUser.IsAdmin = true; if (events != null && events.Count > 0) { appUser.AttendesEvents = events.Select(x => new AttendesEvent { EventID = x }).ToList(); } if (chatLogic.getAdminGroupID() != null) { appUser.AttendeeGroups.Add(new AttendeeGroup() { GroupID = chatLogic.getAdminGroupID() }); } db.Attendes.Add(appUser); await db.SaveChangesAsync(); if (events != null) { foreach (var eventID in events) { chatLogic.AddNewAdminToEventChannels(appUser, eventID); } } } return(RedirectToAction("Index")); } catch (DbEntityValidationException ex) { Helpers.LogError("AppUser Error", ex); ModelState.AddModelError(String.Empty, ex.EntityValidationErrors.ElementAt(0).ValidationErrors.ElementAt(0).ErrorMessage); EventLogic eventLogic = new EventLogic(); ViewBag.Events = await eventLogic.GetAllEvents(); ViewBag.error = Literals.ErrorMessage; return(View(appUser)); } }
public async Task <ActionResult> Create(Attende attende, List <int> events, HttpPostedFileBase thumbnail) { try { bool isUploaded; if (await attendBuisness.CheckIfEmailAlreadyExists(attende.Email, attende.ID)) { EventLogic eventLogic = new EventLogic(); ViewBag.Events = await eventLogic.GetAllEvents(); ModelState.AddModelError("Email", "Email already exists."); ModelState.AddModelError(String.Empty, "Failed"); return(attende.IsSpeaker ? View("~/Views/Speakers/Create.cshtml", attende) : View(attende)); } string fileName = string.Empty; if (thumbnail != null) { isUploaded = true; fileName = Guid.NewGuid().ToString() + ".png"; } else { Entities db = new Entities(); var imagecheck = await db.Attendes.FindAsync(attende.ID); if (attende.IsUploadedImage == false) { fileName = attendBuisness.GenerateImageFromName(attende.FirstName, attende.Lastname, ImageSavePath); //"noimage.png"; isUploaded = false; } else { isUploaded = true; fileName = string.Empty; } //if(imagecheck?.Thumbnail == null) //{ //fileName = attendBuisness.GenerateImageFromName(attende.FirstName, attende.Lastname, ImageSavePath); //"noimage.png"; //isUploadedImage = false; //} } if (attende.ID == 0) { attende.AddedBY = CurrentUserSession.AttendesID; } attende.Thumbnail = fileName; await attendBuisness.AddUpdateAttendee(attende, events, isUploaded); if (thumbnail != null) { thumbnail.SaveAs(Path.Combine(ImageSavePath, fileName)); } return(attende.IsSpeaker ? RedirectToAction("Index", "Speakers") : RedirectToAction("Index")); } catch (Exception ex) { Helpers.LogError("Attendee create error", ex); EventLogic eventLogic = new EventLogic(); ViewBag.Events = await eventLogic.GetAllEvents(); ViewBag.Error = Literals.ErrorMessage; return(View(attende)); } }
public bool checkIfAttendeeMessagingEnabled(Attende attendee) { return(attendee?.EnableMessaging ?? true); }
public async Task <bool> AddUpdateAttendee(Attende attende, List <int> events, bool isUploadedImage) { if (attende.ID > 0) { var updateAttendee = Db.Attendes.Find(attende.ID); updateAttendee.FirstName = attende.FirstName; updateAttendee.Lastname = attende.Lastname; updateAttendee.InstagramURL = attende.InstagramURL; updateAttendee.Status = attende.Status; updateAttendee.TwitterURL = attende.TwitterURL; updateAttendee.FacebookURL = attende.FacebookURL; updateAttendee.Description = attende.Description; updateAttendee.LinkedinURL = attende.LinkedinURL; updateAttendee.CompanyName = attende.CompanyName; updateAttendee.TitleName = attende.TitleName; updateAttendee.Website = attende.Website; updateAttendee.Email = attende.Email; updateAttendee.IsUploadedImage = isUploadedImage; if (!string.IsNullOrEmpty(attende.Thumbnail)) { updateAttendee.Thumbnail = attende.Thumbnail; } if (events == null) { var removeAll = Db.AttendesEvents.Where(x => x.AttendesID == attende.ID); Db.AttendesEvents.RemoveRange(removeAll); } else { var removeEvent = Db.AttendesEvents.Where(x => x.AttendesID == attende.ID && !events.Contains(x.EventID)); if (removeEvent.Count() > 0) { Db.AttendesEvents.RemoveRange(removeEvent); await Db.SaveChangesAsync(); } foreach (var item in events) { if (!Db.AttendesEvents.Any(x => x.EventID == item && x.AttendesID == attende.ID)) { Db.AttendesEvents.Add(new AttendesEvent { EventID = item, AttendesID = attende.ID }); } } } updateAttendee.EnableMessaging = attende.EnableMessaging; updateAttendee.EnableAlertEmails = attende.EnableAlertEmails ?? false; updateAttendee.EnableAttendeeMessagingEmails = attende.EnableAttendeeMessagingEmails ?? false; await Db.SaveChangesAsync(); //update } else { //save if (events != null && events.Count > 0) { attende.AttendesEvents = events.Select(x => new AttendesEvent { EventID = x }).ToList(); } Db.Attendes.Add(attende); await Db.SaveChangesAsync(); } return(true); }