示例#1
0
        public override void Process(TagHelperContext context, TagHelperOutput output)
        {
            if (!string.IsNullOrWhiteSpace(Email))
            {
                var hash = Md5HashHelper.GetHash(Email);

                output.TagName = "img";
                if (!string.IsNullOrWhiteSpace(Class))
                {
                    output.Attributes.Add("class", Class);
                }

                if (!string.IsNullOrWhiteSpace(Alt))
                {
                    output.Attributes.Add("alt", Alt);
                }

                output.Attributes.Add("src", GetAvatarUrl(hash, Size));
                output.TagMode = TagMode.SelfClosing;
            }
        }
示例#2
0
        /// <summary>
        /// 同步OTA订单
        /// </summary>
        public void SynchronizingOtaOrder()
        {
            XJ_OrderIssuedsSoapClient client = new XJ_OrderIssuedsSoapClient();
            string timeStamp = DateTime.Now.GetTimeStamp();
            var    sign      = Md5HashHelper.HashPassword(_merCode + _key + timeStamp);
            //订单类型(4 - OTA订单, 5 - 旅行社订单)
            var order      = client.GetOrderIssuedLine(_merCode, timeStamp, sign, "", "", 4);
            var resultData = JsonHelper.JsonToObject <ResultData>(order);

            if (resultData.IsTrue && resultData.ResultCode == "200")
            {
                var orderModel      = JsonConvert.DeserializeObject <List <OtaOrderModel> >(resultData.ResultJson);
                var orderList       = orderModel.Take(200).OrderByDescending(a => a.CreateTime).ToList();
                var channelCodeList = orderList.Select(a => a.ChannelCode).Distinct().ToList();
                var businessList    = _otaBusinessService.GetList(channelCodeList, 1);
                var productCodeList = orderList.Select(a => a.ProductCode).Distinct().ToList();
                var tickets         = _ticketService.GetListByBusiness(productCodeList);

                foreach (var row in orderList)
                {
                    //判断分销商是否存在
                    var business = businessList.FirstOrDefault(a => a.Code == row.ChannelCode);
                    if (business == null)
                    {
                        continue;
                    }
                    var ticket = tickets.FirstOrDefault(a => a.Code == row.ProductCode);
                    //判断产品是否存在
                    if (ticket == null)
                    {
                        continue;
                    }

                    XJ_Order orderInfo = PopulateOTAOrder(row, business, ticket);
                    OrderOtaAction(tickets, row, orderInfo);
                }
            }
        }
 public string HashPassword(ApplicationUser user, string password)
 {
     return(Md5HashHelper.GetMd5Hash(password));
 }
        public ActionResult Edit(UserEdit model)
        {
            var user = DB.Account.Single(x => x.Id == model.Id);

            if (!ModelState.IsValid)
            {
                SetChangeModel(user, model);
                ViewBag.IsControlPanelUser = user.TypeUser == (sbyte)TypeUsers.ControlPanelUser;
                return(View(model));
            }

            var activated = false;

            if (Request.Form["activate"] != null)
            {
                if (user.EnabledEnum == UserStatus.Request)
                {
                    activated = true;
                }
                user.EnabledEnum = UserStatus.New;
            }
            else if (Request.Form["block"] != null)
            {
                user.EnabledEnum = UserStatus.Blocked;
            }

            var groups = DB.AccountGroup.Where(x => model.AccountGroupIds.Contains(x.Id));

            user.AccountGroup.Clear();
            foreach (var group in groups)
            {
                user.AccountGroup.Add(group);
            }

            user.AccountRegion.Clear();
            foreach (var regionCode in model.AccountRegionIds)
            {
                user.AccountRegion.Add(new AccountRegion()
                {
                    AccountId = user.Id, RegionId = regionCode
                });
            }

            var password = "";

            // если подтверждение регистрации пользователя
            if (activated)
            {
                password             = GetRandomPassword();
                user.Password        = Md5HashHelper.GetHash(password);
                user.PasswordUpdated = DateTime.Now;
            }

            user.AppointmentId        = model.AppointmentId;
            user.LastUpdatePermisison = DateTime.Now;
            DB.SaveChanges();

            // отправка сообщения пользователю с паролем
            if (activated)
            {
                Mails.SendAccountVerificationMessage(user, password);
            }

            SuccessMessage("Изменения успешно сохранены");
            // если админ - на список админов
            if (user.TypeUser == (sbyte)TypeUsers.ControlPanelUser)
            {
                return(RedirectToAction("AdminList"));
            }

            return(RedirectToAction("Index"));
        }
        private Account SaveAccount(AccountCompany accountCompany, RegViewModel Reg_ViewModel = null, RegDomainViewModel RegDomain_ViewModel = null, RegNotProducerViewModel RegNotProducer_ViewModel = null, string Pass = null)
        {
            var newAccount = new Account();

            newAccount.EnabledEnum = UserStatus.New;
            newAccount.TypeUser    = (sbyte)TypeUsers.ProducerUser;
            newAccount.CompanyId   = accountCompany.Id;

            // регистрация первого пользователя компании
            if (Reg_ViewModel != null)
            {
                newAccount.Login           = Reg_ViewModel.login;
                newAccount.Password        = Md5HashHelper.GetHash(Pass);
                newAccount.PasswordUpdated = DateTime.Now;
                newAccount.FirstName       = Reg_ViewModel.FirstName;
                newAccount.LastName        = Reg_ViewModel.LastName;
                newAccount.OtherName       = Reg_ViewModel.OtherName;
                newAccount.Name            = Reg_ViewModel.LastName + " " + Reg_ViewModel.FirstName + " " + Reg_ViewModel.OtherName;
                newAccount.Phone           = Reg_ViewModel.PhoneNumber;
                newAccount.AppointmentId   = Reg_ViewModel.AppointmentId;
            }

            // регистрация второго и последующих пользователей производителя
            if (RegDomain_ViewModel != null)
            {
                newAccount.Login           = RegDomain_ViewModel.Mailname + "@" + DB.CompanyDomainName.Single(x => x.Id == RegDomain_ViewModel.EmailDomain).Name;
                newAccount.Password        = Md5HashHelper.GetHash(Pass);
                newAccount.PasswordUpdated = DateTime.Now;
                newAccount.FirstName       = RegDomain_ViewModel.FirstName;
                newAccount.LastName        = RegDomain_ViewModel.LastName;
                newAccount.OtherName       = RegDomain_ViewModel.OtherName;
                newAccount.Name            = RegDomain_ViewModel.LastName + " " + RegDomain_ViewModel.FirstName + " " + RegDomain_ViewModel.OtherName;
                newAccount.Phone           = RegDomain_ViewModel.PhoneNumber;
                newAccount.AppointmentId   = RegDomain_ViewModel.AppointmentId;
            }

            // Если компания в списке отсутствует
            if (RegNotProducer_ViewModel != null)
            {
                // создали новую должность
                var appointment = new AccountAppointment()
                {
                    Name = RegNotProducer_ViewModel.Appointment, GlobalEnabled = false
                };
                DB.Entry(appointment).State = EntityState.Added;
                DB.SaveChanges();

                newAccount.Login         = RegNotProducer_ViewModel.login;
                newAccount.FirstName     = RegNotProducer_ViewModel.FirstName;
                newAccount.LastName      = RegNotProducer_ViewModel.LastName;
                newAccount.OtherName     = RegNotProducer_ViewModel.OtherName;
                newAccount.Name          = RegNotProducer_ViewModel.LastName + " " + RegNotProducer_ViewModel.FirstName + " " + RegNotProducer_ViewModel.OtherName;
                newAccount.Phone         = RegNotProducer_ViewModel.PhoneNumber;
                newAccount.AppointmentId = appointment.Id;
                // особый статус
                newAccount.EnabledEnum = UserStatus.Request;
            }

            DB.Entry(newAccount).State = EntityState.Added;
            DB.SaveChanges();
            return(newAccount);
        }
        public ActionResult UserAuthentication(LoginValidation user)
        {
            // валидация
            if (String.IsNullOrEmpty(user.login) || String.IsNullOrEmpty(user.password))
            {
                ErrorMessage("Некорректно введены данные. Вашим логином является email, указанный при регистрации. Пароль при регистрации был выслан на ваш email");
                ViewBag.CurrentUser = null;
                return(Redirect("~"));
            }

            // проверка наличия в БД
            var thisUser = DB.Account.SingleOrDefault(x => x.Login == user.login && x.TypeUser == SbyteTypeUser);

            if (thisUser == null)
            {
                ErrorMessage("Пользователь не найден. Вашим логином является email, указанный при регистрации");
                ViewBag.CurrentUser = null;
                return(Redirect("~"));
            }

            // проверка пароля
            var passHash = Md5HashHelper.GetHash(user.password);

            if (passHash != thisUser.Password)
            {
                ErrorMessage("Неправильно введен пароль");
                ViewBag.CurrentUser = null;
                return(Redirect("~"));
            }

            // если логинится не впервый раз и не заблокирован
            if (thisUser.EnabledEnum == UserStatus.Active)
            {
                CurrentUser = thisUser;
                return(Autentificate());
            }

            // если логинится впервые
            else if (thisUser.EnabledEnum == UserStatus.New)
            {
                var group = DB.AdminGroup();
                group.Account.Add(thisUser);
                DB.SaveChanges();

                thisUser.PasswordUpdated = DateTime.Now;
                thisUser.EnabledEnum     = UserStatus.Active;
                DB.Entry(thisUser).State = EntityState.Modified;
                DB.SaveChanges();

                CurrentUser = thisUser;
                SuccessMessage("Вы успешно подтвердили свою регистрацию на сайте");
                return(Autentificate());
            }

            // аккаунт заблокирован
            else if (thisUser.EnabledEnum == UserStatus.Blocked)
            {
                CurrentUser = null;
                ErrorMessage("Ваша учетная запись заблокирована, обращайтесь на " + ConfigurationManager.AppSettings["MailFrom"]);
                return(Redirect("~"));
            }

            // заявка на регистрацию
            else if (thisUser.EnabledEnum == UserStatus.Request)
            {
                CurrentUser = null;
                SuccessMessage("Ваша заявка на регистрацию еще не рассмотрена, обращайтесь на " + ConfigurationManager.AppSettings["MailFrom"]);
                return(Redirect("~"));
            }
            return(Redirect("~"));
        }
        protected virtual void Seed(ModelBuilder modelBuilder)
        {
            string   currentUserName = "******";
            DateTime date            = new DateTime(2018, 1, 1, 0, 0, 0, DateTimeKind.Utc);

            Guid userId = new Guid("fa64114f-9aaf-492a-a9aa-43022bfac171");
            var  user   = User.Create(userId, "Administrator");

            ((IAuditableEntity)user).CreateAuditable(date, currentUserName);

            modelBuilder.Entity <User>().HasData(user);

            Guid credentialTypeId = new Guid("105ef49d-42b6-4fb8-8d9e-52aaa16f42a9");
            var  credentialType   = CredentialType.Create(credentialTypeId, "Email address", "email");

            ((IAuditableEntity)credentialType).CreateAuditable(date, currentUserName);
            modelBuilder.Entity <CredentialType>().HasData(credentialType);

            Guid credentialId = new Guid("132a06e7-4c9e-49f9-8f94-0604f01a5c16");
            var  credential   = Credential.Create(credentialId, userId, credentialTypeId, "*****@*****.**", Md5HashHelper.ComputeHash("admin"));

            ((IAuditableEntity)credential).CreateAuditable(date, currentUserName);
            modelBuilder.Entity <Credential>().HasData(credential);
        }