public UpdateUserResponse UpdateUser(UpdateUserRequest request) { using (var db = new DotWEntities()) { if (!string.IsNullOrEmpty(request.AspNetUserId)) { var user = db.Users.FirstOrDefault(x => x.AspNetUserId == request.AspNetUserId); if (user != null) { user.Name = request.Name; user.Email = request.Email; db.SaveChanges(); } } else if (request.Id.HasValue) { var user = db.Users.FirstOrDefault(x => x.Id == request.Id); if (user != null) { user.Name = request.Name; user.Email = request.Email; db.SaveChanges(); } } return(new UpdateUserResponse()); } }
public UpdatePostResponse UpdatePost(UpdatePostRequest request) { using (var db = new DotWEntities()) { var post = db.Posts.FirstOrDefault(x => x.Id == request.Id); if (post != null) { post.Title = request.Title; post.Summary = request.Summary; post.Body = request.Body; post.IdCategory = request.IdCategory; post.IsDraft = post.IsDraft ? request.IsDraft : post.IsDraft; post.PrincipalImageName = request.PrincipalImageName; db.SaveChanges(); request.Tags = request.Tags.Select(x => x.ToLower()).Distinct().ToList(); var postTags = db.Tags.Where(x => x.PostId == post.Id).Select(x => x.Tag).ToList(); foreach (var t in postTags) { // Todos aquellos posts que estan en la base pero no llegan en el request es porque han sido borrados por el usuario, // por ende, se borran en la base de datos. if (!request.Tags.Contains(t)) { var rtag = db.Tags.Where(x => x.Tag == t.ToLower() && x.PostId == request.Id).SingleOrDefault(); db.Tags.Remove(rtag); db.SaveChanges(); } } var tags = request.Tags.Where(t => !postTags.Contains(t.ToLower())).Select(t => new Tags() { PostId = post.Id, Tag = t.ToLower() }).ToList(); if (tags.Any()) { db.Tags.AddRange(tags); db.SaveChanges(); } } return(new UpdatePostResponse()); } }
public DeleteCommentaryResponse DeleteCommentary(DeleteCommentaryRequest request) { using (var db = new DotWEntities()) { var commentary = db.Comments.FirstOrDefault(x => x.Id == request.Id); if (commentary != null) { commentary.NullDate = DateTime.Now; if (request.IsComplaintOrVoteDifference) { commentary.DeletedByComplaints = true; var user = db.Users.FirstOrDefault(x => x.Id == commentary.IdUser); user.BlockedComments += 1; } db.SaveChanges(); } return(new DeleteCommentaryResponse()); } }
public DeletePostResponse DeletePost(DeletePostRequest request) { using (var db = new DotWEntities()) { var post = db.Posts.FirstOrDefault(x => x.Id == request.Id); if (post != null) { post.NullDate = DateTime.Now; if (request.IsComplaintOrVoteDifference) { post.DeletedByComplaintsOrVotes = true; var user = db.Users.FirstOrDefault(x => x.Id == post.IdWriter); user.BlockedPosts += 1; } db.SaveChanges(); } return(new DeletePostResponse()); } }
public SaveVoteResponse SaveVote(SaveVoteRequest request) { using (var db = new DotWEntities()) { var previousVote = db.Votes.FirstOrDefault(x => x.IdUser == request.UserId && x.IdPost == request.PostId); Votes vote; if (previousVote == null) { vote = new Votes { IdPost = request.PostId, IdUser = request.UserId, Good = request.Good, Bad = request.Bad }; db.Votes.Add(vote); db.SaveChanges(); } else { vote = previousVote; vote.Good = request.Good; vote.Bad = request.Bad; db.SaveChanges(); } var response = new SaveVoteResponse { VoteId = vote.Id, PostId = vote.IdPost, PostGoodVotes = db.Votes.Where(x => x.IdPost == request.PostId).Count(x => x.Good), PostBadVotes = db.Votes.Where(x => x.IdPost == request.PostId).Count(x => x.Bad) }; return(response); } }
public VerifyAndUpdateUserStateByCommentsResponse VerifyAndUpdateUserStateByComments(VerifyAndUpdateUserStateByCommentsRequest request) { using (var db = new DotWEntities()) { Users user; if (request.UserId.HasValue) { user = db.Users.FirstOrDefault(x => x.Id == request.UserId.Value); } else { user = db.Users.FirstOrDefault(x => x.AspNetUserId == request.AspNetUserId); } var response = new VerifyAndUpdateUserStateByCommentsResponse(); if (user != null) { // Se verifica si la cantidad de comentarios bloqueados es mayor a 0 porque la operación // 0 % CommentaryBlockedDivider da como resultado 0 y se podría bloquear un usuario cuando en realidad no corresponde. if (user.BlockedComments > 0) { decimal divisionMod = user.BlockedComments % (int)DividersToBlockUser.CommentaryBlockedDivider; if (divisionMod == 0) { // Se debe suspender al usuario. user.IdState = db.UserStates.Where(x => x.State == UserAccountStates.Suspended.ToString()).Select(x => x.Id).FirstOrDefault(); DateTime previousActivationDate; if (user.ActivationDate.HasValue) { previousActivationDate = user.ActivationDate.Value; } else { previousActivationDate = DateTime.Now; } user.ActivationDate = previousActivationDate.AddDays((int)SuspendDays.SuspendedByComments); db.SaveChanges(); response.UserSuspended = true; response.ActivationDate = user.ActivationDate.Value; } } } return(response); } }
public CreatePostResponse CreatePost(CreatePostRequest request) { using (var db = new DotWEntities()) { var post = new Posts { IdWriter = request.IdWriter, Title = request.Title, Summary = request.Summary, Body = request.Body, EffectDate = DateTime.Now, IdCategory = request.CategoryId, IsDraft = request.IsDraft, PrincipalImageName = request.PrincipalImageName, DeletedByComplaintsOrVotes = false, }; db.Posts.Add(post); db.SaveChanges(); request.Tags = request.Tags.Select(x => x.ToLower()).Distinct().ToList(); var postTags = db.Tags.Where(x => x.PostId == post.Id).Select(x => x.Tag).ToList(); var tags = request.Tags.Where(t => !postTags.Contains(t.ToLower())).Select(t => new Tags() { PostId = post.Id, Tag = t.ToLower() }).ToList(); tags = tags.Distinct().ToList(); if (tags.Any()) { db.Tags.AddRange(tags); db.SaveChanges(); } return(new CreatePostResponse { PostId = post.Id }); } }
public UpdateCommentaryResponse UpdateCommentary(UpdateCommentaryRequest request) { using (var db = new DotWEntities()) { var commentary = db.Comments.FirstOrDefault(x => x.Id == request.Id); if (commentary != null) { commentary.Commentary = request.CommentaryText; db.SaveChanges(); } return(new UpdateCommentaryResponse()); } }
public DeleteCategoryResponse DeleteCategory(DeleteCategoryRequest request) { using (var db = new DotWEntities()) { var Category = db.Categories.FirstOrDefault(x => x.Id == request.Id); if (Category != null) { Category.NullDate = DateTime.Now; db.SaveChanges(); } return(new DeleteCategoryResponse()); } }
public DeleteUserResponse DeleteUser(DeleteUserRequest request) { using (var db = new DotWEntities()) { var user = db.Users.FirstOrDefault(x => x.AspNetUserId == request.AspNetUserId); if (user != null) { user.AspNetUserId = null; user.NullDate = DateTime.Now; db.SaveChanges(); } return(new DeleteUserResponse()); } }
public ActivateUserResponse ActivateUser(ActivateUserRequest request) { using (var db = new DotWEntities()) { var user = db.Users.FirstOrDefault(x => x.Id == request.Id); if (user != null) { user.ActivationDate = null; user.IdState = (int)UserAccountStates.Active; db.SaveChanges(); } return(new ActivateUserResponse()); } }
public VerifyIfIsSuspendedAndUpdateUserResponse VerifyIfIsSuspendedAndUpdateUser(VerifyIfIsSuspendedAndUpdateUserRequest request) { using (var db = new DotWEntities()) { Users user; if (request.UserId.HasValue) { user = db.Users.FirstOrDefault(x => x.Id == request.UserId.Value); } else { user = db.Users.FirstOrDefault(x => x.AspNetUserId == request.AspNetUserId); } if (user.UserStates.State == UserAccountStates.Active.ToString()) { return(new VerifyIfIsSuspendedAndUpdateUserResponse { UserSuspended = false }); } else { if (user.ActivationDate.HasValue && user.ActivationDate <= DateTime.Now) { user.ActivationDate = null; user.IdState = (int)UserAccountStates.Active; db.SaveChanges(); return(new VerifyIfIsSuspendedAndUpdateUserResponse { UserSuspended = false }); } else { return(new VerifyIfIsSuspendedAndUpdateUserResponse { UserSuspended = true }); } } } }
public UpdateProfileResponse UpdateProfile(UpdateProfileRequest request) { using (var db = new DotWEntities()) { var user = db.Users.FirstOrDefault(x => x.Id == request.Id); if (user != null) { user.FullName = request.FullName; user.Phone = request.Phone; user.Description = request.Description; user.ShowData = request.ShowData; db.SaveChanges(); } return(new UpdateProfileResponse()); } }
public UpdateCategoryResponse UpdateCategory(UpdateCategoryRequest request) { using (var db = new DotWEntities()) { var Category = db.Categories.FirstOrDefault(x => x.Id == request.Id); if (Category != null) { Category.Title = request.Title; Category.Description = request.Description; Category.Summary = request.Summary; Category.IdUpperCategory = request.IdUpperCategory; db.SaveChanges(); } return(new UpdateCategoryResponse()); } }
public EnableUserResponse EnableUser(EnableUserRequest request) { using (var db = new DotWEntities()) { var user = db.Users.FirstOrDefault(x => x.Id == request.UserId); if (user != null) { user.NullDate = null; user.IdState = (int)UserAccountStates.Active; user.ActivationDate = null; db.SaveChanges(); } return(new EnableUserResponse { UserName = user.Name, Email = user.AspNetUsers.Email }); } }
public EnablePostResponse EnablePost(EnablePostRequest request) { using (var db = new DotWEntities()) { var post = db.Posts.FirstOrDefault(x => x.Id == request.PostId); if (post != null) { post.NullDate = null; post.DeletedByComplaintsOrVotes = false; var user = db.Users.FirstOrDefault(x => x.Id == post.IdWriter); user.BlockedPosts -= 1; db.SaveChanges(); } return(new EnablePostResponse()); } }
public EnableCommentaryResponse EnableCommentary(EnableCommentaryRequest request) { using (var db = new DotWEntities()) { var comment = db.Comments.FirstOrDefault(x => x.Id == request.CommentaryId); if (comment != null) { comment.NullDate = null; comment.DeletedByComplaints = false; var user = db.Users.FirstOrDefault(x => x.Id == comment.IdUser); user.BlockedComments -= 1; db.SaveChanges(); } return(new EnableCommentaryResponse()); } }
public CreateCategoryResponse CreateCategory(CreateCategoryRequest request) { using (var db = new DotWEntities()) { var category = new Categories { Title = request.Title, Description = request.Description, Summary = request.Summary, IdUpperCategory = request.IdUpperCategory }; db.Categories.Add(category); db.SaveChanges(); return(new CreateCategoryResponse { CategoryId = category.Id }); } }
public CreateUserResponse CreateUser(CreateUserRequest request) { using (var db = new DotWEntities()) { var user = new Users { Name = request.User.Name, AspNetUserId = request.User.AspNetUserId, EffectDate = DateTime.Now, IdState = (int)UserAccountStates.Active, ActivationDate = (DateTime?)null, Email = request.User.Email }; db.Users.Add(user); db.SaveChanges(); return(new CreateUserResponse()); } }
public CreateCommentaryComplaintResponse CreateCommentaryComplaint(CreateCommentaryComplaintRequest request) { using (var db = new DotWEntities()) { var complaint = new Complaints { IdComment = request.CommentaryId, IdUser = request.UserId, Description = request.Commentary }; db.Complaints.Add(complaint); db.SaveChanges(); var response = new CreateCommentaryComplaintResponse { ComplaintId = complaint.Id, CommentaryId = complaint.IdComment.Value }; response.CommentaryComplaintsCount = db.Complaints.Count(x => x.IdComment == response.CommentaryId); return(response); } }
public CreateCommentaryResponse CreateCommentary(CreateCommentaryRequest request) { using (var db = new DotWEntities()) { var commentary = new Comments { Commentary = request.CommentaryText, EffectDate = DateTime.Now, IdPost = request.IdPost, IdUser = request.IdUser, IdUpperComment = request.IdUpperComment, DeletedByComplaints = false }; db.Comments.Add(commentary); db.SaveChanges(); return(new CreateCommentaryResponse { CommentaryId = commentary.Id }); } }