Пример #1
0
        public static int SetUser(UserDataAdm ud, int mngUserId)
        {
            List <Product> userProducts = ud.Products.FindAll(p => p.Selected == true);

            int[,] products = new int[userProducts.Count, 2];
            for (int i = 0; i < userProducts.Count; i++)
            {
                Product p = userProducts[i];
                products[i, 0] = userProducts[i].ProductId;
                products[i, 1] = userProducts[i].LicenseCnt;
            }

            return(DB.SetUser(mngUserId, ud.UserId, ud.ClientId, ud.Username, ud.Email, ud.Password, ud.UserTypeId, ud.Fullname, ud.PushSessions, ud.MaxLoginCount, ud.SessionTimeout, ud.Code, ud.Phone, ud.SkypeName, ud.CountryId, products, ud.Note, ud.SellerParentId, ud.Active, ud.OriginId, ud.EmailValid, ud.AllowedIps));
        }
        //    [ValidateAjax]
        public ActionResult AddRegistration(RegisterUserData rud)
        {
            var  captchaResponseToken = Request.Form["g-recaptcha-response"];
            bool res = Common.ValidateCaptcha(captchaResponseToken);

            if (!res)
            {
                ModelState.AddModelError(String.Empty, "Invalid Captcha"); // for summary-view only

                return(Json(this.GetModelStateDictErrors(ModelState)));
            }

            if (ModelState.IsValid)
            {
                var fakeProducts = new List <Product>();
                var fakeProduct  = new Product
                {
                    Demo       = false,
                    StartDate  = DateTime.Now,
                    EndDate    = DateTime.Now.AddYears(10),
                    IsActive   = true,
                    ProductId  = 1,
                    Selected   = true,
                    LicenseCnt = 1
                };

                fakeProducts.Add(fakeProduct);

                var fakeClient = new ClientData();
                fakeClient.ClientName = rud.Mail;
                fakeClient.CountryId  = 36;
                fakeClient.OriginId   = 1;
                fakeClient.Products   = fakeProducts;

                var clientId = UserMng.SetClient(6510, fakeClient);

                var fakeUserDataAdm = new UserDataAdm
                {
                    Email      = rud.Mail,
                    EmailValid = false, // consider not validating this at start
                    Username   = rud.Mail,
                    UserType   = UserTypes.User,
                    Active     = true,     // consider not activating this at start
                    Fullname   = rud.Mail, // intentionally
                    ClientId   = clientId,
                    Password   = rud.Password,
                    OriginId   = 1,
                    Products   = fakeProducts
                };

                var userId = UserMng.SetUser(fakeUserDataAdm, 6510); // TODO: get some system id

                // SEND ACTIVATION EMAIL
                string subject = "Interlex account activation";

                string token           = UserMng.AddUservalidateToken(userId);
                string applicationPath = Request.ApplicationPath != "/" ? Request.ApplicationPath : String.Empty;
                string activationUrl   = "http://" + Request.Url.Authority + applicationPath + "/Login/Activate/" + token;
                string activationLink  = "<a href=\"" + activationUrl + "\" target=\"_blank\">" + activationUrl + "</a>";
                string body            = Resources.Resources.UI_Registration_MailBody;
                body = body.Replace("{fullname}", rud.Mail); // intentionally using mail instead of fullname
                body = body.Replace("{activation_link}", activationLink);

                // var model = new RegistrationEmail(activationLink, name);
                // var body = base.GetViewString("~/Views/User/_RegistrationEmail.cshtml", model, language);

                Mail.SendMail("*****@*****.**", "Interlex", new string[] { rud.Mail }, subject, body);

                return(PartialView("AfterRegistration"));
            }

            return(Json(this.GetModelStateDictErrors(ModelState)));
        }