Example #1
0
        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);
            }
        }
Example #2
0
                                                                   /// <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);
                                                                       }
                                                                   }
Example #3
0
 public async Task Create(ContactoPuestoHistorico contactoPuesto)
 {
     try
     {
         _db.ContactoPuestoHistorico.Add(contactoPuesto);
         await _db.SaveChangesAsync();
     }
     catch (Exception e)
     {
         throw new Exception(e.Message, e);
     }
 }
Example #4
0
                                                                   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)); }
                                                                        }