Exemplo n.º 1
0
 public IHttpActionResult CreateApplication([FromBody] SaveApplicationModel value)
 {
     try
     {
         return(Ok(controller.CreateApplication(value.Name, value.Description, value.DirectoryName, value.DirectoryDescription)));
     }
     catch (Exception ex)
     {
         return(Error(ex));
     }
 }
Exemplo n.º 2
0
 public IHttpActionResult UpdateApplication(string applicationName, [FromBody] SaveApplicationModel value)
 {
     try
     {
         controller.UpdateApplication(applicationName, value.Name, value.Description);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(Error(ex));
     }
 }
        //GET : /api/UserProfile
        public async Task <Object> SaveApplication(SaveApplicationModel input)
        {
            var    result = 0;
            var    createClientResponse = new CreateClientResponse();
            string userId = User.Claims.First(c => c.Type == "UserID").Value;

            input.UserId = userId;
            var user = await _userManager.FindByIdAsync(userId);

            #region Create Client Id, Secret From Identity Server
            using (var _httpClient = new HttpClient())
            {
                string message      = JsonConvert.SerializeObject(input);
                byte[] messageBytes = Encoding.UTF8.GetBytes(message);
                var    content      = new ByteArrayContent(messageBytes);
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                HttpRequestMessage requestMessage = new HttpRequestMessage()
                {
                    RequestUri = new Uri(_configuration["RackleUrls:IdentityServer"].ToString() + "/api/Client/Save"),
                    Method     = HttpMethod.Post,
                    Content    = content
                };

                var response = await _httpClient.SendAsync(requestMessage);

                var data = response.Content.ReadAsStringAsync().Result;
                createClientResponse = string.IsNullOrEmpty(data) ? null : JsonConvert.DeserializeObject <CreateClientResponse>(data);
            }
            #endregion

            var UserApplicationContext         = _dataContext.Set <UserApplications>();
            var ApplicationRedirectUrisContext = _dataContext.Set <ApplicationRedirectUris>();
            var ApplicationScopesContext       = _dataContext.Set <ApplicationScopes>();

            UserApplications UserApplicationEntity = new UserApplications();
            if (!string.IsNullOrWhiteSpace(createClientResponse?.ClientId)) // Identity Create Request atılacak response'una göre kayıt atılacak
            {
                var applicationEntity = await UserApplicationContext.Include(x => x.RedirectUris).SingleOrDefaultAsync(x => x.ClientId == input.ClientId);

                var redirectURiList = await ApplicationRedirectUrisContext.Where(x => x.ApplicationId == applicationEntity.Id).ToListAsync();

                foreach (var item in redirectURiList)
                {
                    if (!input.RedirectUris.Contains(item.RedirectUri))
                    {
                        ApplicationRedirectUrisContext.Remove(item);
                    }
                }
                foreach (var item in input.RedirectUris)
                {
                    if (!redirectURiList.Any(x => x.RedirectUri == item))
                    {
                        ApplicationRedirectUrisContext.Add(new ApplicationRedirectUris
                        {
                            Id            = Guid.NewGuid(),
                            RedirectUri   = item,
                            ApplicationId = applicationEntity.Id
                        });
                    }
                }
                result = await _dataContext.SaveChangesAsync();
            }
            if (result > 0 && !string.IsNullOrWhiteSpace(createClientResponse?.ClientId))
            {
                UserApplicationEntity = await UserApplicationContext.Include(x => x.RedirectUris).SingleOrDefaultAsync(x => x.ClientId == input.ClientId);

                return
                    (new
                {
                    Success = true,
                    UserApplication = new
                    {
                        ApplicationName = UserApplicationEntity.ApplicationName,
                        ClientId = UserApplicationEntity.ClientId,
                        RedirectUris = UserApplicationEntity.RedirectUris.Select(x => x.RedirectUri).ToList(),
                        Scopes = UserApplicationEntity.Scopes.Select(x => x.Scope).ToList(),
                        Secret = UserApplicationEntity.Secret
                    }
                });
            }
            return(new { Success = false });
        }
Exemplo n.º 4
0
 public IHttpActionResult DeleteApplication(string applicationName, int copyVersion, [FromBody] SaveApplicationModel value)
 {
     try
     {
         controller.CopyApplication(applicationName, value.Name, value.Description, copyVersion);
         return(Ok());
     }
     catch (Exception ex)
     {
         return(Error(ex));
     }
 }