Exemplo n.º 1
0
        public HttpResponseMessage Edit([FromBody] Models.Account account)
        {
            try
            {
                if (account == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ""));
                }

                using (var context = new EMContext())
                {
                    context.Configuration.LazyLoadingEnabled = false;

                    Models.Account updatedAccount = new Models.Account();

                    DB.Models.Account existingAccount = context.Accounts.Where(x => x.AccountID == account.AccountID).FirstOrDefault();

                    if (existingAccount != null)
                    {
                        existingAccount.AccountTypeID = account.AccountTypeID;
                        existingAccount.AccountName   = account.AccountName;
                        existingAccount.CreatedDate   = DateTime.Now;

                        context.SaveChanges();

                        updatedAccount = context.Accounts.Where(x => x.AccountID == account.AccountID).Select(x => new Models.Account()
                        {
                            AccountID     = x.AccountID,
                            AccountTypeID = x.AccountTypeID,
                            AccountName   = x.AccountName,
                            CreatedDate   = x.CreatedDate
                        }).FirstOrDefault();
                    }

                    APIResponse <Models.Account> apiResponse = new APIResponse <Models.Account>()
                    {
                        StatusCode   = (int)(updatedAccount == null ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK),
                        StatusRemark = "",
                        Content      = (updatedAccount ?? null),
                    };

                    return(Request.CreateResponse((updatedAccount == null ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK), apiResponse));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);

                if (HttpContext.Current.IsDebuggingEnabled)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ""));
                }
            }
        }
Exemplo n.º 2
0
        public HttpResponseMessage Delete(string id)
        {
            try
            {
                if (id == null || (id != null && id.Trim().Length == 0))
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, ""));
                }

                bool   result = false;
                string error  = string.Empty;

                using (var context = new EMContext())
                {
                    context.Configuration.LazyLoadingEnabled = false;

                    Guid accountID = Guid.Parse(id);

                    DB.Models.Transaction foundTransaction = context.Transactions.Where(x => x.FromAccountID == accountID || x.ToAccountID == accountID).FirstOrDefault();

                    if (foundTransaction == null)
                    {
                        DB.Models.Account foundAccount = context.Accounts.Where(x => x.AccountID == accountID).FirstOrDefault();

                        if (foundAccount != null)
                        {
                            context.Accounts.Remove(foundAccount);

                            context.SaveChanges();

                            result = true;
                        }
                        else
                        {
                            result = false;
                        }
                    }
                    else
                    {
                        result = false;
                        error  = "Error, found that this account in used in transaction.";
                    }

                    APIResponse <bool> apiResponse = new APIResponse <bool>()
                    {
                        StatusCode   = (int)(!result ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK),
                        StatusRemark = error,
                        Content      = result,
                    };

                    return(Request.CreateResponse((!result ? HttpStatusCode.ExpectationFailed : HttpStatusCode.OK), apiResponse));
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);

                if (HttpContext.Current.IsDebuggingEnabled)
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.InternalServerError, ""));
                }
            }
        }