/// <summary> /// The CreateOrder /// </summary> /// <param name="order">The obj<see cref="Order"/></param> /// <param name="userName">The userName<see cref="string"/></param> /// <param name="transaction">The transaction<see cref="TransactionalInformation"/></param> /// <returns>The <see cref="Order"/></returns> public Order CreateOrder(Order order, string userName, out TransactionalInformation transaction) { transaction = new TransactionalInformation(); ShoppingCartBusinessService shoppingCartBusinessService = ShoppingCartBusinessService.GetCart(userName); try { OrderBusinessRules orderBusinessRules = new OrderBusinessRules(); ValidationResult results = orderBusinessRules.Validate(order); bool validationSucceeded = results.IsValid; IList <ValidationFailure> failures = results.Errors; if (validationSucceeded == false) { transaction = ValidationErrors.PopulateValidationErrors(failures); return(order); } _dataService.CreateSession(); var insertParam = new DynamicParameters(); insertParam.Add("@CustomerName", order.CustomerName); insertParam.Add("@CreatedBy", order.CreatedBy); insertParam.Add("@CreatedDate", order.CreatedDate); insertParam.Add("@CustomerAddress", order.CustomerAddress); insertParam.Add("@CustomerEmail", order.CustomerEmail); insertParam.Add("@CustomerMessage", order.CustomerMessage); insertParam.Add("@CustomerMobile", order.CustomerMobile); insertParam.Add("@PaymentMethod", order.PaymentMethod); insertParam.Add("@PaymentStatus", order.PaymentStatus); insertParam.Add("@Status", order.Status); insertParam.Add("@Total", order.Total); insertParam.Add("@ID", dbType: DbType.Int32, direction: ParameterDirection.Output); _dataService.OrderRepository.Insert(OrderScript.Insert, insertParam, CommandType.Text); order.ID = insertParam.Get <int>("@ID"); CreateOrderDetail(order, shoppingCartBusinessService); transaction.ReturnStatus = true; transaction.ReturnMessage.Add("successfull"); } catch (Exception ex) { string errorMessage = ex.Message; transaction.ReturnMessage.Add(errorMessage); transaction.ReturnStatus = false; } finally { _dataService.CloseSession(); } return(order); }
/// <summary> /// The UpdateOrder /// </summary> /// <param name="obj">The obj<see cref="Order"/></param> /// <param name="transaction">The transaction<see cref="TransactionalInformation"/></param> public void UpdateOrder(Order obj, out TransactionalInformation transaction) { transaction = new TransactionalInformation(); try { OrderBusinessRules orderBusinessRules = new OrderBusinessRules(); ValidationResult results = orderBusinessRules.Validate(obj); bool validationSucceeded = results.IsValid; IList <ValidationFailure> failures = results.Errors; if (validationSucceeded == false) { transaction = ValidationErrors.PopulateValidationErrors(failures); return; } _dataService.CreateSession(); // Todo here: var parameters = new DynamicParameters(); parameters.Add("@PaymentStatus", obj.PaymentStatus); parameters.Add("@Status", obj.Status); parameters.Add("@ID", obj.ID); _dataService.OrderRepository.Update(OrderScript.Update, parameters, CommandType.Text); _dataService.CommitTransaction(true); transaction.ReturnStatus = true; transaction.ReturnMessage.Add("successfully"); } catch (Exception ex) { string errorMessage = ex.Message; transaction.ReturnMessage.Add(errorMessage); transaction.ReturnStatus = false; } finally { _dataService.CloseSession(); } }