Exemplo n.º 1
0
        public async Task <ActionResult> AddCustomer(TMRC_CSP.Models.Customers _resellerRequest)
        {
            if (ModelState.IsValid)
            {
                //Session["_resellerRequest"] = _resellerRequest;
                //saved the new customer/Reseller
                TMRC_CSP.ViewModel.ResellerRequest.NewRequest res = new TMRC_CSP.ViewModel.ResellerRequest.NewRequest();
                string MicrosoftCustomerId = await res.AcceptRequest(_resellerRequest, ViewModel.Account.Login._r.Id);

                if (MicrosoftCustomerId == "Unknown error occur" || MicrosoftCustomerId == "Domain name already exist")
                {
                    ViewBag.msg = MicrosoftCustomerId;
                }
                else
                {
                    return(RedirectToAction("Customers"));
                }
            }
            TMRC_CSP.ViewModel.Countries.Countries country = new TMRC_CSP.ViewModel.Countries.Countries();
            ViewBag.Countries = country.GetCountries();
            return(View());
        }
Exemplo n.º 2
0
        //Accept the request reseller
        public async Task <string> AcceptRequest(TMRC_CSP.Models.Customers _resellerRequest, int ResellerId = 0)
        {
            var db = new Context.ConnectionStringsContext();

            try
            {
                //var obj = (Models.Customers)HttpContext.Current.Session["_resellerRequest"];

                // TODO :: Loc. may need special handling for national clouds deployments (China).
                string domainName = string.Format(CultureInfo.InvariantCulture, "{0}.onmicrosoft.com", _resellerRequest.PrimaryDomain);

                // check domain available.

                bool isDomainTaken = await ApplicationDomain.Instance.PartnerCenterClient.Domains.ByDomain(domainName).ExistsAsync().ConfigureAwait(false);

                if (isDomainTaken)
                {
                    return("Domain name already exist");
                }

                // get the locale, we default to the first locale used in a country for now.
                Microsoft.Store.PartnerCenter.Models.CountryValidationRules.CountryValidationRules customerCountryValidationRules = await ApplicationDomain.Instance.PartnerCenterClient.CountryValidationRules.ByCountry(_resellerRequest.Country).GetAsync().ConfigureAwait(false);

                string billingCulture  = customerCountryValidationRules.SupportedCulturesList.FirstOrDefault();     // default billing culture is the first supported culture for the customer's selected country.
                string billingLanguage = customerCountryValidationRules.SupportedLanguagesList.FirstOrDefault();    // default billing culture is the first supported language for the customer's selected country.

                //Add Customer to Partner center
                Customers cus = new Customers(ApplicationDomain.Instance);
                Microsoft.Store.PartnerCenter.Models.Customers.Customer newcustomer = cus.CreateCustomer(_resellerRequest, domainName, billingCulture, billingLanguage);

                Models.Customers res;
                if (db.Customers.Any(m => m.Id == _resellerRequest.Id))   //For Update
                {
                    res               = db.Customers.Where(m => m.Id == _resellerRequest.Id).SingleOrDefault();
                    res.Address1      = _resellerRequest.Address1;
                    res.Address2      = _resellerRequest.Address2;
                    res.City          = _resellerRequest.City;
                    res.Province      = _resellerRequest.Province;
                    res.ZipCode       = _resellerRequest.ZipCode;
                    res.Country       = _resellerRequest.Country;
                    res.PhoneNumber   = _resellerRequest.PhoneNumber;
                    res.FirstName     = _resellerRequest.FirstName;
                    res.LastName      = _resellerRequest.LastName;
                    res.Email         = _resellerRequest.Email;
                    res.Company       = _resellerRequest.Company;
                    res.MicrosoftId   = newcustomer.Id;
                    res.PrimaryDomain = domainName;
                    res.VerifiedDate  = DateTime.Now;
                    res.IsVerified    = true;
                    res.IsAcceptTerms = _resellerRequest.IsAcceptTerms;
                }
                else   //For Adding
                {
                    res = new Models.Customers()
                    {
                        Address1    = _resellerRequest.Address1,
                        Address2    = _resellerRequest.Address2,
                        City        = _resellerRequest.City,
                        Province    = _resellerRequest.Province,
                        ZipCode     = _resellerRequest.ZipCode,
                        Country     = _resellerRequest.Country,
                        PhoneNumber = _resellerRequest.PhoneNumber,
                        //Language = customerViewModel.Language,
                        FirstName   = _resellerRequest.FirstName,
                        LastName    = _resellerRequest.LastName,
                        Email       = _resellerRequest.Email,
                        Company     = _resellerRequest.Company,
                        MicrosoftId = newcustomer.Id,
                        //UserName = customerViewModel.Email,
                        // BillingLanguage = billingLanguage,
                        // BillingCulture = billingCulture,
                        PrimaryDomain = domainName,
                        //DomainPrefix = customerViewModel.DomainPrefix,
                        VerifiedDate   = DateTime.Now,
                        IsVerified     = true,
                        IsAcceptTerms  = _resellerRequest.IsAcceptTerms,
                        AdditionalInfo = "",
                        Status         = true,
                        CreatedDate    = DateTime.Now,
                        UserName       = newcustomer.UserCredentials.UserName,
                        Password       = newcustomer.UserCredentials.Password,
                        ResellerId     = ResellerId
                    };
                    db.Customers.Add(res);
                }
                db.SaveChanges();
                ViewModel.OffersSetup.Agreements agr = new OffersSetup.Agreements();
                await agr.MicosoftCloudAgreement(newcustomer);

                return(res.MicrosoftId);
            }
            catch
            {
                return("Unknown error occur");
            }
        }