public static async Task <DataResponse <MovimentStockModel> > Post(MovimentModel model) { using (var db = BaseService.CreateSampleContext()) { var response = new DataResponse <MovimentStockModel>(); var resource = await db.GetResourceById(model.ResourceID); if (resource == null) { response.AddError("ResourceID", "Resource not found"); } else if (model.MovimentTypeID == DataEntities.Enums.MovimentType.Out && model.Quantity > resource.Quantity) { response.AddError("Quantity", "It's not possible to carry out a withdrawal, since the current stock is insufficient"); } if (response.Errors.Count > 0) { response.ResponseCode = 400; return(response); } var usuario = await db.GetUserModelBySessionId(db.SessionID.Value); switch (model.MovimentTypeID) { case DataEntities.Enums.MovimentType.In: resource.Quantity += model.Quantity; break; case DataEntities.Enums.MovimentType.Out: resource.Quantity -= model.Quantity; break; } var moviment = new DataEntities.Moviment(); moviment.MovimentID = Guid.NewGuid(); moviment.ResourceID = resource.ResourceID; moviment.UserID = usuario.UserID; moviment.MovimentTypeID = model.MovimentTypeID; moviment.Quantity = model.Quantity; await db.Moviments.AddAsync(moviment); await db.SaveChangesAsync(); response.ResponseCode = 200; response.Data = new MovimentStockModel { MovimentId = moviment.MovimentID, NewResourceStock = resource.Quantity }; return(response); } }
public static async Task <DataResponse <Guid> > Delete(Guid resourceId) { using (var db = BaseService.CreateSampleContext()) { var response = new DataResponse <Guid>(); var resource = db.Resources.Find(resourceId); if (resource == null) { response.AddError("ResourceID", "Resource not found"); } var erros = response.GetMessageFromErrors(); if (erros != string.Empty) { response.Message = erros; response.ResponseCode = 400; return(response); } db.Resources.Remove(resource); await db.SaveChangesAsync(); response.Data = resource.ResourceID; response.ResponseCode = 200; return(response); } }
public async Task <DataResponse <FriendRequest> > GetFriedsRequestByUserID(Guid userID) { DataResponse <FriendRequest> response = new DataResponse <FriendRequest>(); if (userID == null) { response.AddError("ID", "ID invalido"); } return(response.HasError() ? response : await _repository.GetFriedsRequestByUserID(userID)); }
public async Task <DataResponse <Sale> > GetSalesByBuyerID(Guid buyerID) { DataResponse <Sale> response = new DataResponse <Sale>(); if (buyerID == null) { response.AddError("ID", "ID invalido"); } return(response.HasError() ? response : await _repository.GetSalesByBuyerID(buyerID)); }
public async Task <DataResponse <Comment> > GetCommentsByWritterID(Guid writterID) { DataResponse <Comment> response = new DataResponse <Comment>(); if (writterID == null) { response.AddError("ID", "ID invalido"); } return(response.HasError() ? response : await _repository.GetCommentsByWritterID(writterID)); }
public async Task <DataResponse <User> > GetUserByIdForProfile(Guid userID, bool owenr) { DataResponse <User> dataResponse = new DataResponse <User>(); if (userID == null) { dataResponse.AddError("userID", "ID invalido"); } return(dataResponse.HasError() ? dataResponse : await _repository.GetUserByIdForProfile(userID, owenr)); }
public async Task <DataResponse <Item> > GetObjectByID(Guid objectToGetID) { DataResponse <Item> response = new DataResponse <Item>(); if (objectToGetID == null) { response.AddError("ID", "ID invalido"); } return(response.HasError() ? response : await _repository.GetObjectByID(objectToGetID)); }
public async Task <DataResponse <Ad> > GetAdsForID(Guid SellerID) { DataResponse <Ad> response = new DataResponse <Ad>(); if (SellerID == null) { response.AddError("ID", "ID invalido"); } return(response.HasError() ? response : await _repository.GetAdsForID(SellerID)); }
public async Task <DataResponse <Item> > GetObjectByName(string name) { DataResponse <Item> response = new DataResponse <Item>(); if (string.IsNullOrWhiteSpace(name)) { response.AddError("Name", "O nome deve ser informado"); } else { name = name.ToLower().Trim(); name = Regex.Replace(name, @"\s+", " "); if (name.Length < 2 && name.Length > 20) { response.AddError("Name", "O nome deve conter entre 2 a 20 caracteres"); } } return(response.HasError() ? response : await _repository.GetObjectByName(name)); }
internal static DataResponse <T1> GetErrorsFromModel <T1, T2>(this DataResponse <T1> response, T2 model) where T2 : IValidatableObject { var context = new ValidationContext(model, serviceProvider: null, items: null); var results = new List <ValidationResult>(); var isValid = Validator.TryValidateObject(model, context, results); if (!isValid) { foreach (var result in results) { response.AddError(result.ErrorMessage, result.MemberNames.ToArray()); } } return(response); }
public async Task <DataResponse <User> > GetAllObjects() { DataResponse <User> dataResponse = new DataResponse <User>(); try { dataResponse.Data = await _context.Users.Where(u => u.IsActive).ToListAsync(); } catch (Exception ex) { dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <User> > GetObjectByID(Guid objectToGetID) { DataResponse <User> dataResponse = new DataResponse <User>(); try { dataResponse.Data.Add(await _context.Users.FirstAsync(u => u.ID == objectToGetID)); } catch (Exception ex) { dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <User> > Authetication(string email, string password) { DataResponse <User> dataResponse = new DataResponse <User>(); try { dataResponse.Data.Add(await _context.Users.FirstOrDefaultAsync(x => x.Login.Email.Equals(email, StringComparison.OrdinalIgnoreCase) && x.Login.Password.Equals(password))); } catch (Exception ex) { dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <User> > GetObjectByName(string name) { DataResponse <User> dataResponse = new DataResponse <User>(); try { dataResponse.Data = await _context.Users.Where(i => i.Nick.Equals(name, StringComparison.OrdinalIgnoreCase)).ToListAsync(); } catch (Exception ex) { dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public static async Task <DataResponse <Guid> > Put(ResourceModel model) { using (var db = BaseService.CreateSampleContext()) { var response = new DataResponse <Guid>(); var resource = db.Resources.Find(model.ResourceID); if (resource == null) { response.AddError("ResourceID", "Resource not found"); } var erros = response.GetErrorsFromModel(model).GetMessageFromErrors(); if (erros != string.Empty) { response.Message = erros; response.ResponseCode = 400; return(response); } var session = await db.Sessions.Include(x => x.User) .FirstOrDefaultAsync(u => u.SessionID == db.SessionID); var diff = model.Quantity - resource.Quantity; resource.Description = model.Description; resource.Observation = model.Observation; resource.Quantity = model.Quantity; if (diff != 0) { var moviment = new DataEntities.Moviment(); moviment.MovimentID = Guid.NewGuid(); moviment.ResourceID = model.ResourceID.Value; moviment.UserID = session.UserID; moviment.MovimentTypeID = diff > 0 ? DataEntities.Enums.MovimentType.In : DataEntities.Enums.MovimentType.Out; moviment.Quantity = Math.Abs(diff); await db.Moviments.AddAsync(moviment); } await db.SaveChangesAsync(); response.Data = resource.ResourceID; response.ResponseCode = 200; return(response); } }
public async Task <DataResponse <Item> > GetItemsUserID(Guid userID) { DataResponse <Item> dataResponse = new DataResponse <Item>(); try { dataResponse.Data = await _context.Items.Where(i => i.UserID == userID && i.IsActive).ToListAsync(); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <User> > GetUserByIdForProfile(Guid userID, bool owenr) { DataResponse <User> dataResponse = new DataResponse <User>(); try { dataResponse.Data.Add(owenr ? await _context.Users.Include(u => u.Items).Include(u => u.Ads).Include(u => u.Sales).FirstOrDefaultAsync(u => u.ID == userID) : await _context.Users.Include(u => u.Items).FirstOrDefaultAsync(u => u.ID == userID)); } catch (Exception ex) { dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <Sale> > GetSalesByBuyerID(Guid buyerID) { DataResponse <Sale> dataResponse = new DataResponse <Sale>(); try { dataResponse.Data = await _context.Sales.Where(i => i.BuyerId == buyerID).ToListAsync(); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <Sale> > GetSaleByAd(Guid adID) { DataResponse <Sale> dataResponse = new DataResponse <Sale>(); try { dataResponse.Data.Add(await _context.Sales.FirstOrDefaultAsync(i => i.AdId == adID)); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <Comment> > GetCommentsByWritterID(Guid writterID) { DataResponse <Comment> dataResponse = new DataResponse <Comment>(); try { dataResponse.Data = await _context.Comments.Where(c => c.WritterID == writterID && c.IsActive).ToListAsync(); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <Ad> > GetAdsForID(Guid SellerID) { DataResponse <Ad> dataResponse = new DataResponse <Ad>(); try { dataResponse.Data = await _context.Ads.Where(a => a.SellerUserID == SellerID).ToListAsync(); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }
public async Task <DataResponse <FriendRequest> > GetObjectByID(Guid objectToGetID) { DataResponse <FriendRequest> dataResponse = new DataResponse <FriendRequest>(); try { dataResponse.Data.Add(await _context.FriendRequests.FirstOrDefaultAsync(f => f.ID == objectToGetID)); } catch (Exception ex) { dataResponse.Success = false; dataResponse.AddError("Banco de dados", "Error no banco de dados, contate um suporte"); StringBuilder logMessage = new StringBuilder(); logMessage.Append(DateTime.Now.ToString()); log.Error(logMessage.AppendLine(ex.Message).AppendLine(ex.StackTrace).ToString()); } return(dataResponse); }