public static Response <Pedido> Post(this Pedido request, Factory factory, IHttpRequest httpRequest) { factory.Execute(proxy => { var session = httpRequest.GetSession(); request.IdCreadoPor = int.Parse(session.UserAuthId); request.Id = 0; request.FechaAceptacion = null; request.FechaEnvio = null; request.FechaAnulado = null; request.FechaCreacion = DateTime.Today; request.FechaActualizacion = request.FechaCreacion; request.IdAceptadoPor = null; request.IdAnuladoPor = null; request.IdEnviadoPor = null; var fp = proxy.CheckExistAndActivo <FormaPago>(request.IdFormaPago, f => f.Descripcion); request.DescripcionFormaPago = fp.Descripcion; var contacto = proxy.CheckExistAndActivo <Contacto>(request.IdContacto, f => f.Nombre); request.NombreContacto = contacto.Nombre; var ciudad = CheckCiudad(proxy, request); request.NombreCiudad = ciudad.Nombre; request.CodigoCiudad = ciudad.Codigo; var cliente = proxy.CheckExistAndActivo <Cliente>(contacto.IdCliente, f => f.Nombre); request.NitCliente = cliente.Nit; request.NombreCliente = cliente.Nombre; using (proxy.AcquireLock(Consecutivo.GetLockKey(BL.Cotizacion), BL.LockSeconds)) { proxy.BeginDbTransaction(); request.Consecutivo = proxy.GetNext(BL.Cotizacion).Valor; proxy.Create(request); proxy.CommitDbTransaction(); } }); List <Pedido> data = new List <Pedido>(); data.Add(request); return(new Response <Pedido>() { Data = data }); }