public ActionResult <ObjectResult> StartEstimate([FromBody] OrderEstimate order) { try { OrderService orderService = new OrderService(Startup.BeePlaceDataBaseConnectionString); orderService.StartEstimate(order); return(StatusCode((int)HttpStatusCode.OK, order)); } catch (Exception e) { return(StatusCode((int)HttpStatusCode.InternalServerError, e.Message)); } }
/// <summary> /// Recupera um orçamento pelo código do orçamento para que seja visualizado pelo cliente caso negado para gerar uma nova solicitação do mesmo orçamento para outra empresa. /// </summary> /// <param name="orderEstimate"></param> /// <returns></returns> public OrderEstimate GetOrderEstimate(OrderEstimate orderEstimate) { try { StandartPersistence standartPersistence = new StandartPersistence(this.Connection); OrderEstimate estimate = new OrderEstimate(); estimate = standartPersistence.GetEntities <OrderEstimate>( CommandType.Text, "SELECT * FROM OrderEstimate WHERE Id = @IdOrderEstimate", new { IdOrderEstimate = estimate.Id }).SingleOrDefault(); estimate.Company = new Company(); estimate.Company = standartPersistence.GetEntities <Company>( CommandType.Text, "SELECT * FROM Company WHERE Id = @IdCompany", new { IdCompany = estimate.Id }).SingleOrDefault(); estimate.OrderEstimateItems = new List <OrderEstimateItem>(); estimate.OrderEstimateItems = standartPersistence.GetEntities <OrderEstimateItem>( CommandType.Text, "SELECT * FROM OrderEstimateItem WHERE IdOrderEstimate = @IdOrderEstimate", new { IdOrderEstimate = estimate.Id }).ToList(); estimate.Client = new Model.Profile.Client.Entity.B2C.Client(); estimate.Client = standartPersistence.GetEntities <Model.Profile.Client.Entity.B2C.Client>( CommandType.Text, "SELECT * FROM Client WHERE Id = @IdClient", new { IdClient = estimate.IdClient }).SingleOrDefault(); estimate.Client.Address = new Address(); estimate.Client.Address = standartPersistence.GetEntities <Address>( CommandType.Text, "SELECT * FROM Address WHERE Id = @IdAddress", new { estimate.IdAddress }).SingleOrDefault(); return(estimate); } catch (SqlException e) { throw e; } }
/// <summary> /// Inicializa uma solicitação de orçamento de prestação de serviço. /// </summary> /// <param name="order"></param> public void StartEstimate(OrderEstimate order) { using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { try { StandartPersistence standartPersistence = new StandartPersistence(this.Connection); order.DateCreated = DateTime.Now; order.DateUpdated = DateTime.Now; standartPersistence.Insert <OrderEstimate>(order); if (order.OrderEstimateItems.Count > 0) { for (int i = 0; i < order.OrderEstimateItems.Count; i++) { order.OrderEstimateItems[i].IdOrderEstimate = order.Id; order.OrderEstimateItems[i].DateCreated = DateTime.Now; order.OrderEstimateItems[i].DateUpdated = DateTime.Now; standartPersistence.Insert <OrderEstimateItem>(order.OrderEstimateItems[i]); if (order.OrderEstimateItems[i].Audits != null && order.OrderEstimateItems[i].Audits.Count > 0) { foreach (var image in order.OrderEstimateItems[i].Audits) { image.IdOrderItem = order.OrderEstimateItems[i].Id; CreateAudit(image); } } } } transactionScope.Complete(); } catch (SqlException e) { throw e; } catch (TransactionException e) { throw e; } } }