public IHttpActionResult Put(int id, [FromBody] DTO.Expense expense)
        {
            try
            {
                if (expense == null)
                {
                    return(BadRequest());
                }

                // map
                var exp = _expenseFactory.CreateExpense(expense);

                var result = _repository.UpdateExpense(exp);
                if (result.Status == RepositoryActionStatus.Updated)
                {
                    // map to dto
                    var updatedExpense = _expenseFactory.CreateExpense(result.Entity);
                    return(Ok(updatedExpense));
                }
                else if (result.Status == RepositoryActionStatus.NotFound)
                {
                    return(NotFound());
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
        public object CreateDataShapedObject(DTO.Expense expense, List <string> lstOfFields)
        {
            if (!lstOfFields.Any())
            {
                return(expense);
            }
            else
            {
                // create a new ExpandoObject & dynamically create the properties for this object

                ExpandoObject objectToReturn = new ExpandoObject();
                foreach (var field in lstOfFields)
                {
                    // need to include public and instance, b/c specifying a binding flag overwrites the
                    // already-existing binding flags.

                    var fieldValue = expense.GetType()
                                     .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance)
                                     .GetValue(expense, null);

                    // add the field to the ExpandoObject
                    ((IDictionary <String, Object>)objectToReturn).Add(field, fieldValue);
                }

                return(objectToReturn);
            }
        }
        public IHttpActionResult Post([FromBody] DTO.Expense expense)
        {
            try
            {
                if (expense == null)
                {
                    return(BadRequest());
                }

                // map
                var exp = _expenseFactory.CreateExpense(expense);

                var result = _repository.InsertExpense(exp);
                if (result.Status == RepositoryActionStatus.Created)
                {
                    // map to dto
                    var newExp = _expenseFactory.CreateExpense(result.Entity);
                    return(Created <DTO.Expense>(Request.RequestUri + "/" + newExp.Id.ToString(), newExp));
                }

                return(BadRequest());
            }
            catch (Exception)
            {
                return(InternalServerError());
            }
        }
        public IHttpActionResult Post([FromBody] DTO.Expense expense)
        {
            try
            {
                if (expense == null)
                {
                    return(BadRequest());
                }

                var e      = _expenseFactory.CreateExpense(expense);
                var result = _repository.InsertExpense(e);

                if (result.Status == RepositoryActionStatus.Created)
                {
                    var createdExpense = _expenseFactory.CreateExpense(result.Entity);
                    return(Created(Request.RequestUri + "/" + createdExpense.Id.ToString(), createdExpense));
                }
                else
                {
                    return(BadRequest());
                }
            } catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }
Beispiel #5
0
 public Expense CreateExpense(DTO.Expense expense)
 {
     return(new Expense()
     {
         Amount = expense.Amount,
         Date = expense.Date,
         Description = expense.Description,
         ExpenseGroupId = expense.ExpenseGroupId,
         Id = expense.Id
     });
 }
Beispiel #6
0
        public Entities.IEntity CreateEntityFromDTO(DTO.IDTOEntity entity)
        {
            DTO.Expense expense = (DTO.Expense)entity;

            return(new Entities.Expense()
            {
                Amount = expense.Amount,
                ExpenseDate = expense.ExpenseDate,
                Description = expense.Description,
                ExpenseGroupId = expense.ExpenseGroupId
            });
        }
Beispiel #7
0
        private void SetExpense(DTO.Expense expense)
        {
            // We should not use the same expense instance, but a new one

            Expense = new Expense()
            {
                Amount         = expense.Amount,
                Date           = expense.Date,
                Description    = expense.Description,
                ExpenseGroupId = expense.ExpenseGroupId,
                Id             = expense.Id
            };
        }
 public object CreateDataShapedObject(DTO.Expense expense, List <string> lstOfFields)
 {
     if (!lstOfFields.Any())
     {
         return(expense);
     }
     else
     {
         ExpandoObject objectToReturn = new ExpandoObject();
         foreach (var field in lstOfFields)
         {
             var fieldValue = expense.GetType()
                              .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance)
                              .GetValue(expense, null);
             ((IDictionary <string, object>)objectToReturn).Add(field, fieldValue);
         }
         return(objectToReturn);
     }
 }
Beispiel #9
0
        public object CreateDataShapedObject(DTO.Expense expense, List <string> fieldList)
        {
            if (!fieldList.Any())
            {
                return(expense);
            }
            else
            {
                ExpandoObject shapedObject = new ExpandoObject();

                foreach (var field in fieldList)
                {
                    var fieldValue = expense
                                     .GetType()
                                     .GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance)
                                     .GetValue(expense, null);

                    ((IDictionary <string, object>)shapedObject).Add(field, fieldValue);
                }

                return(shapedObject);
            }
        }
Beispiel #10
0
        public object CreateDataShapedObject(DTO.Expense expense, List <string> lstOfFields)
        {
            if (!lstOfFields.Any())
            {
                return(expense);
            }
            else
            {
                // an object whose members can be dynamically removed and added at run-time
                ExpandoObject objectToReturn = new ExpandoObject();

                foreach (var field in lstOfFields)
                {
                    // reflection
                    var fieldValue = expense
                                     .GetType().GetProperty(field, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance)
                                     .GetValue(expense, null);

                    ((IDictionary <string, object>)objectToReturn).Add(field, fieldValue);
                }

                return(objectToReturn);
            }
        }