Esempio n. 1
0
        public async Task <IActionResult> Post([FromBody] ImageModel model)
        {
            try
            {
                // Ensure the directory is created
                var directory = $"{_hostingEnvironment.WebRootPath}/images/blog";
                System.IO.Directory.CreateDirectory(directory);

                // Add the file to the posts directory
                var uri          = $"/images/blog/{model.Title}.jpg";
                var absolutePath = $"{_hostingEnvironment.WebRootPath}{uri}";
                await System.IO.File.WriteAllBytesAsync(absolutePath, model.PictureBytes);

                var image = new Image {
                    Title = model.Title, Caption = model.Caption, Uri = uri
                };
                _applicationUnitOfWork.Images.Add(image);
                _applicationUnitOfWork.Commit();

                return(Created(uri, image.Id));
            }
            catch
            {
                return(StatusCode(500, new { Errors = new[] { "Internal server error" } }));
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> Post([FromBody] EditablePostModel model)
        {
            try
            {
                var post = new Post {
                    CreatedOn = DateTime.UtcNow
                };
                if (model.Id != Guid.Empty)
                {
                    var posts = await _applicationUnitOfWork.Posts.GetWithCategory(x => x.Id == model.Id);

                    if (posts == null || posts.Count() == 0)
                    {
                        return(NotFound());
                    }

                    post = posts.First();
                }
                var blurb = model.Blurb;
                if (string.IsNullOrEmpty(blurb))
                {
                    blurb = Regex.Replace(model.Content, "<.*?>", string.Empty);
                    blurb = blurb.Substring(0, Math.Min(blurb.Length, 160));
                }
                var category = _applicationUnitOfWork.Categories.GetAll().FirstOrDefault(x => x.Id == model.CategoryId);
                post.Title      = model.Title;
                post.Blurb      = blurb;
                post.Category   = category;
                post.Content    = model.Content;
                post.ModifiedOn = DateTime.UtcNow;
                post.Raw        = model.Raw;
                post.Tags       = "";

                if (model.Tags != null && !string.IsNullOrEmpty(model.Tags.Trim()))
                {
                    var tags = model.Tags.Split(',').Select(x => x.Trim());
                    post.Tags = string.Join(",", tags);
                }

                if (model.Id != Guid.Empty)
                {
                    _applicationUnitOfWork.Posts.Update(post);
                }
                else
                {
                    _applicationUnitOfWork.Posts.Add(post);
                }
                _applicationUnitOfWork.Commit();
                return(Json(_mapper.Map <EditablePostModel>(post)));
            }
            catch (Exception e)
            {
                _logger.LogError($"Fatal error: {e}");
                return(StatusCode(500, new { Errors = new[] { "Internal server error" } }));
            }
        }
Esempio n. 3
0
            public async Task <PersonViewModel> Handle(Command request, CancellationToken cancellationToken)
            {
                try
                {
                    var person = _persons.Get(request.PersonId);

                    if (person != null)
                    {
                        person.FirstName = request.FirstName;
                        person.LastName  = request.LastName;
                        person.Gender    = (Gender)int.Parse(request.Gender);
                        person.UpdatedAt = DateTimeOffset.Now;
                        person.UpdatedBy = request.GetUserName();

                        _persons.Update(person);
                        await _unitOfWork.Commit();

                        return(_mapper.Map <PersonViewModel>(person));
                    }

                    throw new CustomException(
                              statusCode: HttpStatusCode.NotFound,
                              message: $"Person with Id {request.PersonId} was not found from the database.");
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
Esempio n. 4
0
            public async Task <PersonViewModel> Handle(Command request, CancellationToken cancellationToken)
            {
                try
                {
                    var person = await _persons.AddAsync(new Person
                    {
                        FirstName = request.FirstName,
                        LastName  = request.LastName,
                        Gender    = (Gender)int.Parse(request.Gender),
                        CreatedBy = request.GetUserName()
                    });

                    await _unitOfWork.Commit();

                    return(_mapper.Map <PersonViewModel>(person));
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }