示例#1
0
        // this method will be called only one time in start method in another class
        // .. I am initializing a channel for Grpc and some required properties for my ObserveEvents method
        public void GrpcChannelInitialization()
        {
            _grpcChannel = new Channel("192.168.100.16", 50001, ChannelCredentials.Insecure);

            _eventService = new EventService.EventServiceClient(_grpcChannel);
            _request      = new RegisterOnEvent();
        }
        public ActionResult ConfirmEmail(string Token, string Email)
        {
            RegisterOnEvent user = repository.RegisterInEvent.Where(m => m.Token == Token).Where(m => m.Email == Email).FirstOrDefault();

            if (user != null)
            {
                user.EmailConfirmed = true;
                repository.Update(user);
                Event EventObj = repository.Events.Where(m => m.Id == user.EventId).FirstOrDefault();
                EventObj.ReservedPeople++;
                repository.UpdateReservedPeople(EventObj);
                TempData["message"] = string.Format("Вы успешно подтвердили свою регистрацию на мероприятие: {0} {1}", user.FirstName, user.LastName);
                return(RedirectToAction("Index"));
            }
            TempData["message"] = string.Format("Произошла ошибка");
            return(RedirectToAction("Index"));
        }
        public ActionResult RegisterOnEvent(RegisterOnEvent model)
        {
            if (ModelState.IsValid)
            {
                var getUser = repository.RegisterInEvent.Where(m => m.Email == model.Email).Where(m => m.EventId == model.EventId).FirstOrDefault();
                if (getUser == null)
                {
                    RegisterOnEvent user = new RegisterOnEvent
                    {
                        Email          = model.Email,
                        FirstName      = model.FirstName,
                        LastName       = model.LastName,
                        EmailConfirmed = false,
                        EventId        = model.EventId,
                        Token          = model.Email.GetHashCode().ToString() + model.EventId, //генерируем ссылку посредством хеш кода почты и добавляем Ид события
                    };
                    bool result = repository.SaveRegisterUser(user);

                    if (result)
                    {
                        string emailText = string.Format("Для завершения регистрации перейдите по ссылке:" +
                                                         "<a href=\"{0}\" title=\"Подтвердить регистрацию\">{0}</a>",
                                                         Url.Action("ConfirmEmail", "Event", new { Token = user.Token, Email = user.Email }, Request.Url.Scheme));

                        sendMail.SendMail(user.Email, string.Format("{0} {1}, подтвердите ваше участие в мероприятии", model.FirstName, model.LastName), emailText);
                        TempData["message"] = string.Format("{0} {1}, для подтверждении регистрации на мероприятие, подтвердите сообщение в почтовом ящике: {2}", model.FirstName, model.LastName, model.Email);
                        return(RedirectToAction("Index"));
                    }
                }
                else if (getUser.EmailConfirmed == false)
                {
                    ModelState.AddModelError("", "Вы уже регистрировались на это мероприятие, проверьте почту и подтвердите");
                    return(View());
                }
                else
                {
                    ModelState.AddModelError("", "Вы уже в списке приглашенных");
                    return(View());
                }
            }
            return(View());
        }
示例#4
0
 public void Update(RegisterOnEvent user)
 {
     context.Entry(user).State = System.Data.Entity.EntityState.Modified;
     context.SaveChanges();
 }
示例#5
0
 public bool SaveRegisterUser(RegisterOnEvent user)
 {
     context.RegisterInEvent.Add(user);
     context.SaveChanges();
     return(true);
 }