Ejemplo n.º 1
0
        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));
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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
            });
        }
Ejemplo n.º 7
0
        // 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));
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        //// 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();
        }
Ejemplo n.º 11
0
        private string GetAttendeeFullName(int attendeeId)
        {
            Attende attende = Db.Attendes.FirstOrDefault(s => s.ID == attendeeId);

            return(string.Concat(attende.FirstName, ' ', attende.Lastname));
        }
Ejemplo n.º 12
0
        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;
            }
        }
Ejemplo n.º 13
0
        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));
            }
        }
Ejemplo n.º 14
0
        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);
        }