public async Task ActualizaPuestosContactos(int?idcontacto, Empresa empresa) { try { var contactoNuevo = await _db.Contacto.Where(x => x.ContactoId == empresa.ContactoId).FirstOrDefaultAsync(); if (contactoNuevo != null) { //Al nuevo contacto se le modifica la fecha de termino de su ultimo puesto await new ContactoPuestoHistoricoRepository().ActualizaUltimoPuestoContacto(Convert.ToInt32(contactoNuevo.ContactoId), empresa.EmpresaId); //Se actualiza la referencia del puesto al contacto (en la tab de empresas se tiene referencia a este contacto) contactoNuevo.EmpresaId = empresa.EmpresaId; contactoNuevo.ClaveUnidad = null; contactoNuevo.Puesto = empresa.Puesto; await _db.SaveChangesAsync(); //Crea un nuevo puesto en su historial ContactoPuestoHistorico puesto = new ContactoPuestoHistorico(); puesto.ContactoId = Convert.ToInt32(contactoNuevo.ContactoId); puesto.EmpresaId = empresa.EmpresaId; puesto.Puesto = contactoNuevo.Puesto; puesto.FechaInicio = DateTime.Today; await new ContactoPuestoHistoricoRepository().Create(puesto); } if (idcontacto != null) //Al contacto anterior se le modifica la fecha de su ultimo puesto { var contactoViejo = await _db.Contacto.Where(x => x.ContactoId == idcontacto).FirstOrDefaultAsync(); //Se le quita el puesto que tenia de la tabla de empresas if (contactoViejo != null) { contactoViejo.Puesto = null; await _db.SaveChangesAsync(); } await new ContactoPuestoHistoricoRepository().ActualizaUltimoPuestoContacto(Convert.ToInt32(idcontacto), empresa.EmpresaId); } } catch (Exception e) { throw new Exception(e.Message, e); } }
/// <summary> /// Crea un nuevo puesto del contacto /// </summary> /// <param name="contactoId"></param> /// <param name="empresaId"></param> /// <param name="claveEmpresaId"></param> /// <param name="puesto"></param> /// <returns></returns> public async Task ModificaPuestoContacto(int contactoId, int empresaId, string claveEmpresaId, string puesto, string accion) { try { var contacto = await _db.Contacto.Where(x => x.ContactoId == contactoId).FirstOrDefaultAsync(); if (contacto != null) { if (!accion.Equals("actualizar")) { contacto.EmpresaId = empresaId; } contacto.ClaveUnidad = claveEmpresaId; contacto.Puesto = puesto; await _db.SaveChangesAsync(); if (accion.Equals("agregar")) { ContactoPuestoHistorico nuevoPuesto = new ContactoPuestoHistorico(); nuevoPuesto.ContactoId = contacto.ContactoId; nuevoPuesto.EmpresaId = contacto.EmpresaId; nuevoPuesto.Puesto = contacto.Puesto; nuevoPuesto.FechaInicio = DateTime.Now; nuevoPuesto.ClaveUnidad = contacto.ClaveUnidad; await Create(nuevoPuesto); } if (accion.Equals("actualizar")) { var ultimopuesto = await _db.ContactoPuestoHistorico.Where(x => x.ContactoId == contactoId && x.EmpresaId == empresaId).OrderByDescending(x => x.FechaInicio).FirstOrDefaultAsync(); if (ultimopuesto != null) { ultimopuesto.FechaFinal = DateTime.Now; await _db.SaveChangesAsync(); } } } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Create(ContactoPuestoHistorico contactoPuesto) { try { _db.ContactoPuestoHistorico.Add(contactoPuesto); await _db.SaveChangesAsync(); } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task Update(ContactoPuestoHistorico contactoPuesto) { try { var _contactoPuesto = await _db.ContactoPuestoHistorico .FirstOrDefaultAsync(c => c.ContactoPuestoHistoricoId == contactoPuesto.ContactoPuestoHistoricoId); if (_contactoPuesto != null) { _db.Entry(_contactoPuesto).CurrentValues.SetValues(contactoPuesto); await _db.SaveChangesAsync(); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public async Task <IHttpActionResult> Update(ContactoPuestoHistorico contactoPuesto) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); await _contactosPuestoRepo.Update(contactoPuesto); return(Ok("Puesto actualizado correctamente!")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }
[HttpPost][Authorize] public async Task <IHttpActionResult> Create(ContactoPuestoHistorico contactoPuesto) { try { log.Info(new MDCSet(this.ControllerContext.RouteData)); await _contactosPuestoRepo.Create(contactoPuesto); return(Ok("Puesto agregado al historial del contacto correctamente!")); } catch (Exception e) { log.Error(new MDCSet(this.ControllerContext.RouteData), e); return(InternalServerError(e)); } }