public async Task <IEnumerable <PropuestaDTO> > Handle(GetMyPropuestas request, CancellationToken cancellationToken) { var user = _repository.GetById <Usuario>(request.UserId); var props = _repository.List <Propuesta>(t => t.Rubro, t => t.Contratista, t => t.Usuario); if (user.RolId == Constants.RolIdContratista) { props = props.Where(p => p.ContratistaId == request.UserId).ToList(); } else { props = props.Where(p => p.UsuarioId == request.UserId).ToList(); } return(props.Select(prop => new PropuestaDTO { Id = prop.Id, Nombre = prop.Nombre, Descripcion = prop.Descripcion, NombreContratista = $"{prop.Contratista.Nombre} {prop.Contratista.Apellido}", NombreUsuario = $"{prop.Usuario.Nombre} {prop.Usuario.Apellido}", Monto = prop.Monto, Rubro = prop.Rubro.Nombre, Created = prop.Created, Updated = prop.Updated, Status = PropuestasStatusExtensions.ToFriendlyString(prop.Status), })); }
public async Task <PropuestaDTO> Handle(UpdatePropuestaById request, CancellationToken cancellationToken) { var prop = _repository.GetById <Propuesta>(request.id); prop.ContratistaId = request.contratistaId; prop.Descripcion = request.descripcion; prop.RubroId = request.rubroId; prop.Nombre = request.nombre; prop.Descripcion = request.descripcion; prop.Monto = request.monto; prop.Updated = DateTime.UtcNow; prop.Status = (Helpers.PropuestasStatus)request.Status; _repository.Update(prop); prop = _repository.List <Propuesta>(t => t.Contratista, t => t.Usuario, t => t.Rubro).Find(a => a.Id == request.id); return(new PropuestaDTO { Id = prop.Id, Nombre = prop.Nombre, Descripcion = prop.Descripcion, NombreContratista = $"{prop.Contratista.Nombre} {prop.Contratista.Apellido}", NombreUsuario = $"{prop.Usuario.Nombre} {prop.Usuario.Apellido}", Monto = prop.Monto, Rubro = prop.Rubro.Nombre, Updated = prop.Updated, Created = prop.Created, Status = PropuestasStatusExtensions.ToFriendlyString(prop.Status), }); }
public async Task <PropuestaDTO> Handle(AddPropuesta request, CancellationToken cancellationToken) { var propuesta = _repository.Add(new Propuesta { UsuarioId = request.userId, ContratistaId = request.contratistaId, Monto = request.monto, Nombre = request.nombre, Descripcion = request.descripcion, RubroId = request.rubroId, Created = DateTime.UtcNow, Updated = DateTime.UtcNow, Status = Helpers.PropuestasStatus.EnRevision, }); var prop = _repository.List <Propuesta>(t => t.Rubro, t => t.Contratista, t => t.Usuario).Find(p => p.Id == propuesta.Id); return(new PropuestaDTO { Id = prop.Id, Nombre = prop.Nombre, Descripcion = prop.Descripcion, NombreContratista = $"{prop.Contratista.Nombre} {prop.Contratista.Apellido}", NombreUsuario = $"{prop.Usuario.Nombre} {prop.Usuario.Apellido}", Monto = prop.Monto, Rubro = prop.Rubro.Nombre, Updated = prop.Updated, Created = prop.Created, Status = PropuestasStatusExtensions.ToFriendlyString(prop.Status), }); }
public async Task <IEnumerable <PropuestaDTO> > Handle(GetAllPropuestas request, CancellationToken cancellationToken) { var props = _repository.List <Propuesta>(t => t.Rubro, t => t.Contratista, t => t.Usuario); return(props.Select(prop => new PropuestaDTO { Id = prop.Id, Nombre = prop.Nombre, Descripcion = prop.Descripcion, NombreContratista = $"{prop.Contratista.Nombre} + {prop.Contratista.Apellido}", NombreUsuario = $"{prop.Usuario.Nombre} + {prop.Usuario.Apellido}", Monto = prop.Monto, Rubro = prop.Rubro.Nombre, Status = PropuestasStatusExtensions.ToFriendlyString(prop.Status), Created = prop.Created, Updated = prop.Updated })); }