Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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));
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 16
0
        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);
        }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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);
        }