public BlogApplicationService(
     ApplicationServiceServicesContext context,
     IBlogPostApplicationService blogPostApplicationService,
     ICategoryApplicationService categoryApplicationService,
     ITagApplicationService tagApplicationService,
     IAuthorApplicationService authorApplicationService)
     : base(context)
 {
     BlogPostApplicationService = blogPostApplicationService;
     CategoryApplicationService = categoryApplicationService;
     TagApplicationService      = tagApplicationService;
     AuthorApplicationService   = authorApplicationService;
 }
 public BlogApplicationService(IMapper mapper,
                               IBlogPostApplicationService blogPostApplicationService,
                               ICategoryApplicationService categoryApplicationService,
                               ITagApplicationService tagApplicationService,
                               IAuthorApplicationService authorApplicationService,
                               IAuthorizationService authorizationService,
                               IUserService userService)
     : base("blog.", mapper, authorizationService, userService)
 {
     BlogPostApplicationService = blogPostApplicationService;
     CategoryApplicationService = categoryApplicationService;
     TagApplicationService      = tagApplicationService;
     AuthorApplicationService   = authorApplicationService;
 }
Exemplo n.º 3
0
        public AuthorModule(IAuthorApplicationService authorApplicationService) : base("/identityaccess/authors")
        {
            this.Get(string.Empty, async(parameters) =>
            {
                var result = new Response {
                    StatusCode = HttpStatusCode.OK
                };

                if (this.Request.Query["userid"].HasValue)
                {
                    var author = await authorApplicationService.GetAuthorByUserId(this.Request.Query["userid"].ToString());
                    result     = new TextResponse(JsonConvert.SerializeObject(author));
                }
                else
                {
                    result = new TextResponse(HttpStatusCode.BadRequest, "UserId is invalid or missing.");
                }

                return(result);
            }
                     );
        }
Exemplo n.º 4
0
        private static async Task <Response> ProcessWriteMethod(NancyModule module, HttpMethod method, IAuthorApplicationService authorApplicationService, IResourceApplicationService resourceApplicationService, dynamic parameters)
        {
            var result = new Response();
            HttpResponseMessage response = null;
            var responseContent          = string.Empty;

            try
            {
                var resource = await resourceApplicationService.GetByPath(
                    InputModule.GetCombinedPath(parameters)
                    );

                var hc = new HttpClient()
                {
                    BaseAddress = new Uri(resource.InUri)
                };

                string jsonString = RequestStream.FromStream(module.Request.Body).AsString();
                var    subjectId  = GetUserSubjectId(module.Context);
                var    author     = await authorApplicationService.GetAuthorBySubjectId(subjectId);

                dynamic jsonObj = JsonConvert.DeserializeObject <ExpandoObject>(jsonString);

                jsonObj.AuthorId = author.User.NeuronId.ToString();
                var content = new StringContent(JsonConvert.SerializeObject(jsonObj));
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var message = new HttpRequestMessage(
                    method,
                    InputModule.GetPath(module.Context.Request)
                    )
                {
                    Content = content
                };
                foreach (var kvp in module.Context.Request.Headers.ToList())
                {
                    if (Array.IndexOf(new string[] { "Content-Length", "Content-Type" }, kvp.Key) < 0)
                    {
                        message.Headers.Add(kvp.Key, string.Join(',', kvp.Value));
                    }
                }
                response = await hc.SendAsync(message);

                responseContent = await response.Content.ReadAsStringAsync();

                response.EnsureSuccessStatusCode();

                result = new TextResponse(HttpStatusCode.OK, responseContent);
            }
            catch (Exception ex)
            {
                result = new TextResponse(HttpStatusCode.BadRequest, (response != null) ? responseContent : ex.ToString());
            }
            return(result);
        }
Exemplo n.º 5
0
        public InputModule(IAuthorApplicationService authorApplicationService, IResourceApplicationService resourceApplicationService) : base(string.Empty)
        {
            if (bool.TryParse(Environment.GetEnvironmentVariable(EnvironmentVariableKeys.RequireAuthentication), out bool value) && value)
            {
                this.RequiresAuthentication();
            }

            // TODO: handle single path, 3 paths etc.
            this.Post("/{path1}/{path2}/{any*}", (Func <dynamic, Task <Response> >)(async(parameters) =>
            {
                return(await InputModule.ProcessWriteMethod(
                           this,
                           HttpMethod.Post,
                           authorApplicationService,
                           resourceApplicationService,
                           parameters
                           ));
            })
                      );

            this.Patch("/{path1}/{path2}/{any*}", async(parameters) =>
            {
                return(await InputModule.ProcessWriteMethod(
                           this,
                           new HttpMethod("PATCH"),
                           authorApplicationService,
                           resourceApplicationService,
                           parameters
                           ));
            }
                       );

            this.Get("/{path1}/{path2}/{any*}", async(parameters) =>
            {
                var result = new Response();
                HttpResponseMessage response = null;
                var responseContent          = string.Empty;
                try
                {
                    var resource = await resourceApplicationService.GetByPath(
                        InputModule.GetCombinedPath(parameters)
                        );
                    var hc = new HttpClient()
                    {
                        BaseAddress = new Uri(resource.OutUri)
                    };

                    hc.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    response        = await hc.GetAsync(InputModule.GetPath(this.Context.Request));
                    responseContent = await response.Content.ReadAsStringAsync();
                    response.EnsureSuccessStatusCode();

                    return(new TextResponse(HttpStatusCode.OK, responseContent));
                }
                catch (Exception ex)
                {
                    result = new TextResponse(HttpStatusCode.BadRequest, (response != null) ? responseContent : ex.ToString());
                }
                return(result);
            }
                     );

            // TODO: DELETE
        }