public async Task <IActionResult> ProvisionSite([FromBody] CreateSiteRequest request)
        {
            if (!ModelState.IsValid)
            {
                return((IActionResult)BadRequest());
            }

            //byte[] logo;
            //using (var memoryStream = new MemoryStream())
            //{
            //    request.Logo.CopyTo(memoryStream);
            //    logo = memoryStream.ToArray();
            //}

            ProvisionSiteCommand provisionSiteCommand = new ProvisionSiteCommand {
                Name        = request.Name,
                Description = request.Description,
                Active      = true,
                //PageColor1 = request.PageColor1,
                //PageColor2 = request.PageColor2,
                //PageColor3 = request.PageColor3,
                //PageColor4 = request.PageColor4,
                ContactName        = request.ContactName,
                PrimaryTelephone   = request.PrimaryTelephone,
                SecondaryTelephone = request.SecondaryTelephone,
                TenantId           = request.TenantId
            };

            var site = await _businessInformationService.ProvisionSite(provisionSiteCommand);

            return((IActionResult)Ok(site));
        }
Пример #2
0
        public async Task <IActionResult> Produce(CreateSiteRequest request)
        {
            var validatorActionResult = await _validationArrangement.Validate(request);

            var actionResult = await _operationArrangement.Process(request, validatorActionResult);

            return(actionResult);
        }
Пример #3
0
        public override void Run()
        {
            try
            {
                var request     = new CreateSiteRequest();
                var apiInstance = new RequestsApi(Configuration.Default);
                request.ServiceId  = new Guid("3844cf31-4b27-4636-9a15-5548e0eaa906");
                request.Department = "IT";
                string siteName = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}";

                request.Summary   = siteName + " Summary";
                request.SiteTitle = siteName + " Title";

                request.SiteUrl = new SiteUrl()
                {
                    Root        = "https://xxxxx.sharepoint.com",
                    Name        = siteName,
                    ManagedPath = "/sites/"
                };

                request.PolicyId = new Guid("ac758b7f-6079-4fd0-8250-48490a5a34a6");
                request.TimeZone = 21;
                request.Language = 1033;
                request.Template = "STS#3#Team site (no Office 365 group)#Collaboration";

                request.PrimaryAdmin = new ApiUser()
                {
                    LoginName   = "*****@*****.**",
                    DisplayName = "PrimaryAdmin"
                };

                request.PrimaryContact = new ApiUser()
                {
                    LoginName   = "*****@*****.**",
                    DisplayName = "PrimaryContact"
                };

                request.SecondaryContact = new ApiUser()
                {
                    LoginName   = "*****@*****.**",
                    DisplayName = "SecondaryContact"
                };

                request.HubSiteSettings  = new HubSiteSettings();
                request.UserPermissions  = new List <RequestUserWithPermissions>();
                request.GroupPermissions = new List <RequestGroupWithPermissions>();
                request.Metadatas        = this.GetSampleMetadatas();

                var result = apiInstance.SubmitCreateSiteRequest(request);
                Console.WriteLine(result);
            }
            catch (ApiException e)
            {
                Console.WriteLine("Exception when calling RequestsApi.SubmitCreateSiteRequest: " + e.Message);
                Console.WriteLine("Status Code: " + e.ErrorCode);
                Console.WriteLine(e.StackTrace);
            }
        }
Пример #4
0
        public async Task <IActionResult> Create([FromQuery] CreateSiteFromQuery query,
                                                 [FromBody] CreateSiteFromBody body)
        {
            var request = new CreateSiteRequest(query, body);

            var result = await _apiResult.Produce(request);

            return(result);
        }
Пример #5
0
        public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "post")] CreateSiteRequest request, TraceWriter log)
        {
            string adminUrl = $"https://{request.Tenant}-admin.sharepoint.com";

            try
            {
                if (string.IsNullOrWhiteSpace(request.Title))
                {
                    throw new ArgumentException("Parameter cannot be null", "Title");
                }
                if (string.IsNullOrWhiteSpace(request.Tenant))
                {
                    throw new ArgumentException("Parameter cannot be null", "Tenant");
                }
                if (string.IsNullOrWhiteSpace(request.Url))
                {
                    throw new ArgumentException("Parameter cannot be null", "Url");
                }

                var adminContext = await ConnectADAL.GetClientContext(adminUrl, log);

                Tenant tenant = new Tenant(adminContext);
                adminContext.ExecuteQuery();
                string url = $"https://{request.Tenant}.sharepoint.com/sites/{request.Url}";
                var    siteCreationProperties = new SiteCreationProperties()
                {
                    Title                = request.Title,
                    Url                  = url,
                    Owner                = request.OwnerEmail,
                    Template             = !string.IsNullOrWhiteSpace(request.Template) ? request.Template : "STS#3",
                    StorageMaximumLevel  = 100,
                    UserCodeMaximumLevel = 0,
                    Lcid                 = request.Language != 0 ? request.Language : 1033,
                };
                tenant.CreateSite(siteCreationProperties);
                adminContext.ExecuteQuery();

                return(await Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new ObjectContent <CreateSiteResponse>(new CreateSiteResponse {
                        SiteURL = url
                    }, new JsonMediaTypeFormatter())
                }));
            }
            catch (Exception e)
            {
                log.Error($"Error:  {e.Message }\n\n{e.StackTrace}");
                return(await Task.FromResult(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable)
                {
                    Content = new ObjectContent <string>(e.Message, new JsonMediaTypeFormatter())
                }));
            }
        }
Пример #6
0
        public ActionResult Create(CreateSiteRequest request)
        {
            try
            {
                joogleService.CreateSite(request).GetAwaiter().GetResult();

                return(RedirectToAction("Sites"));
            }
            catch
            {
                return(View());
            }
        }
Пример #7
0
 /// <summary>
 /// создать сайт
 /// </summary>
 /// <param name="request">модель создания сайта</param>
 public async Task CreateSite(CreateSiteRequest request)
 {
     using (var db = new JoogleContext())
     {
         var url   = request.Url.TrimEnd('/');
         var exist = db.Sites.FirstOrDefault(x => x.Url == url.ToLower());
         if (exist != null)
         {
             return;
         }
         var site = new Site
         {
             Url        = url.ToLower(),
             DateModify = DateTime.UtcNow
         };
         db.Sites.Add(site);
         db.SaveChanges();
     }
 }
        public async Task<IActionResult> Process(CreateSiteRequest request, IValidatorActionResult validatorActionResult)
        {
            IActionResult actionResult;

            if (validatorActionResult.Result == null)
            {
                var call = _cqsMapper.Map(request);

                var result = await _mediator.Send(call);

                actionResult = result.IsFailure ? _apiResponse.Fail(result)
                                                : _apiResponse.Created(string.Format("/api/sites/{0}", ((Result<Guid>)result).Value), result.Version.ToString());
            }
            else
            {
                actionResult = validatorActionResult.Result;
            }

            return actionResult;
        }
Пример #9
0
        public CreateSiteCommand Map(CreateSiteRequest request)
        {
            var result = new CreateSiteCommand(request.BodyCode, request.BodyName, request.BodySource);

            return(result);
        }