public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > EliminarContacto(Contactos contactoParaEliminar) { using (SportsGoEntities context = new SportsGoEntities(false)) { ChatsRepository chatsRepo = new ChatsRepository(context); Contactos contactoFiltro = new Contactos { Consecutivo = contactoParaEliminar.Consecutivo }; chatsRepo.EliminarContacto(contactoFiltro); Tuple <Contactos, int?> tupleBusqueda = await chatsRepo.BuscarConsecutivoContactoContrario(contactoParaEliminar); Contactos contactoOwner = tupleBusqueda.Item1; int? consecutivoContrarioBuscado = tupleBusqueda.Item2; if (!consecutivoContrarioBuscado.HasValue) { throw new InvalidOperationException("No existe el contacto contrario de esta persona!."); } Contactos contactoParaBorrar = new Contactos { Consecutivo = consecutivoContrarioBuscado.Value }; chatsRepo.EliminarContacto(contactoParaBorrar); NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PersonaEliminada, CodigoPersonaOrigenAccion = contactoOwner.CodigoPersonaOwner, CodigoPersonaDestinoAccion = contactoOwner.CodigoPersonaContacto, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); WrapperSimpleTypesDTO wrapperEliminarContacto = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperEliminarContacto.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperEliminarContacto.NumeroRegistrosAfectados > 0) { wrapperEliminarContacto.Exitoso = true; if (notificacion.Consecutivo > 0) { timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperEliminarContacto, timeLineNotificacion)); } }
public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > ModificarUsuario(Usuarios usuarioParamodificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { AdministracionRepository adminRepo = new AdministracionRepository(context); Usuarios usuarioExistente = await adminRepo.ModificarUsuario(usuarioParamodificar); Notificaciones notificacion = null; if (usuarioExistente.PlanesUsuarios.CodigoPlan != usuarioParamodificar.PlanesUsuarios.CodigoPlanDeseado) { PlanesBusiness planBusiness = new PlanesBusiness(); // Cambio el plan para esa persona await planBusiness.CambiarDePlanUsuario(usuarioParamodificar.PlanesUsuarios); // Armamos una notificacion para el nuevo plan NoticiasRepository noticiasRepo = new NoticiasRepository(context); notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PlanAprobado, CodigoPlanNuevo = usuarioParamodificar.PlanesUsuarios.CodigoPlanDeseado, CodigoPersonaDestinoAccion = usuarioExistente.Personas.First().Consecutivo, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); } WrapperSimpleTypesDTO wrapperModificarUsuario = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperModificarUsuario.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperModificarUsuario.NumeroRegistrosAfectados > 0) { wrapperModificarUsuario.Exitoso = true; if (notificacion != null && notificacion.Consecutivo > 0) { NoticiasRepository noticiasRepo = new NoticiasRepository(context); if (notificacion.CodigoPersonaDestinoAccion.HasValue && notificacion.CodigoPersonaDestinoAccion > 0) { PersonasRepository personaRepo = new PersonasRepository(context); int codigoIdioma = await personaRepo.BuscarCodigoIdiomaDeLaPersona(notificacion.CodigoPersonaDestinoAccion.Value); notificacion.CodigoIdiomaUsuarioBase = codigoIdioma; } timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperModificarUsuario, timeLineNotificacion)); } }
public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > CrearContacto(Contactos contactoParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { ChatsRepository chatsRepo = new ChatsRepository(context); int codigoPersonaContacto = contactoParaCrear.CodigoPersonaContacto; int codigoPersonaOwner = contactoParaCrear.CodigoPersonaOwner; chatsRepo.CrearContacto(contactoParaCrear); Contactos contactoSegundoParaCrear = new Contactos { CodigoPersonaContacto = codigoPersonaOwner, CodigoPersonaOwner = codigoPersonaContacto }; chatsRepo.CrearContacto(contactoSegundoParaCrear); NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PersonaAgregada, CodigoPersonaOrigenAccion = codigoPersonaOwner, CodigoPersonaDestinoAccion = codigoPersonaContacto, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); WrapperSimpleTypesDTO wrapperCrearContacto = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperCrearContacto.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearContacto.NumeroRegistrosAfectados > 0) { wrapperCrearContacto.Exitoso = true; wrapperCrearContacto.ConsecutivoCreado = contactoParaCrear.Consecutivo; if (notificacion.Consecutivo > 0) { timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperCrearContacto, timeLineNotificacion)); } }
public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > CrearGruposEventosAsistentes(GruposEventosAsistentes grupoEventoAsistentesParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { GruposRepository grupoRepository = new GruposRepository(context); grupoRepository.CrearGruposEventosAsistentes(grupoEventoAsistentesParaCrear); int?codigoPersonaGrupo = await grupoRepository.BuscarCodigoPersonaDeUnGrupo(grupoEventoAsistentesParaCrear.CodigoEvento); if (!codigoPersonaGrupo.HasValue) { throw new InvalidOperationException("No se pudo hallar el codigo persona del grupo dueño de este evento, BUUUUUUGGG!.."); } NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoEvento = grupoEventoAsistentesParaCrear.CodigoEvento, CodigoPersonaDestinoAccion = codigoPersonaGrupo.Value, CodigoPersonaOrigenAccion = grupoEventoAsistentesParaCrear.CodigoPersona, CodigoTipoNotificacion = (int)TipoNotificacionEnum.InscripcionEventoUsuario, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); WrapperSimpleTypesDTO wrapperCrearGrupoEventoAsistentes = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperCrearGrupoEventoAsistentes.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearGrupoEventoAsistentes.NumeroRegistrosAfectados > 0) { wrapperCrearGrupoEventoAsistentes.Exitoso = true; wrapperCrearGrupoEventoAsistentes.ConsecutivoCreado = grupoEventoAsistentesParaCrear.Consecutivo; if (notificacion.Consecutivo > 0) { timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperCrearGrupoEventoAsistentes, timeLineNotificacion)); } }
public async Task <WrapperSimpleTypesDTO> CrearPlan(Planes planParaCrear) { using (SportsGoEntities context = new SportsGoEntities(false)) { PlanesRepository planRepository = new PlanesRepository(context); planParaCrear.Archivos.CodigoTipoArchivo = (int)TipoArchivo.Imagen; planRepository.CrearPlan(planParaCrear); WrapperSimpleTypesDTO wrapperCrearPlan = new WrapperSimpleTypesDTO(); wrapperCrearPlan.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperCrearPlan.NumeroRegistrosAfectados > 0) { wrapperCrearPlan.Exitoso = true; wrapperCrearPlan.ConsecutivoCreado = planParaCrear.Consecutivo; if (planParaCrear.PlanDefault == (int)SiNoEnum.Si) { await planRepository.DesasignarPlanDefaultDeUnPerfilMenosActual(planParaCrear.Consecutivo, planParaCrear.CodigoTipoPerfil); } NoticiasRepository noticiasRepo = new NoticiasRepository(context); Notificaciones notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.NuevoPlan, CodigoPlanNuevo = planParaCrear.Consecutivo, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); wrapperCrearPlan.NumeroRegistrosAfectados += await context.SaveChangesAsync(); //if (notificacion.Consecutivo > 0) //{ // TimeLineNotificaciones timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); //} } return(wrapperCrearPlan); } }
public async Task <Tuple <WrapperSimpleTypesDTO, TimeLineNotificaciones> > ModificarEstadoPagoPersona(HistorialPagosPersonas historialPagoParaModificar) { using (SportsGoEntities context = new SportsGoEntities(false)) { PagosRepository pagosRepo = new PagosRepository(context); Notificaciones notificacion = null; // Modifico el estado y la fecha de pago de este historial HistorialPagosPersonas historialPagoExistente = await pagosRepo.ModificarEstadoPagoPersona(historialPagoParaModificar); // Si el pago fue aprobado if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.Aprobado) { PlanesRepository planRepo = new PlanesRepository(context); // Busco el codigo de plan de la persona asignado cuando se registro // Tabla PlanUsuarios, no es el plan en si, es el registro que lleva el control del plan para ese usuario int?codigoPlanUsuario = await planRepo.BuscarCodigoPlanUsuarioPorCodigoPersona(historialPagoExistente.CodigoPersona); PlanesBusiness planBusiness = new PlanesBusiness(); // Armo la entidad del nuevo plan PlanesUsuarios planUsuario = new PlanesUsuarios { Consecutivo = codigoPlanUsuario.Value, CodigoPlanDeseado = historialPagoExistente.CodigoPlan }; // Cambio el plan para esa persona await planBusiness.CambiarDePlanUsuario(planUsuario); // Si el pago que me es mandando esta marcado como PayU // Actualizo las observaciones y la referencia del pago ya que es todo en uno if (historialPagoParaModificar.EsPagoPorPayU) { historialPagoExistente.ReferenciaPago = historialPagoParaModificar.ReferenciaPago; historialPagoExistente.ObservacionesCliente = historialPagoParaModificar.ObservacionesCliente; } // Armamos una notificacion para el nuevo plan NoticiasRepository noticiasRepo = new NoticiasRepository(context); notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PlanAprobado, CodigoPlanNuevo = historialPagoExistente.CodigoPlan, CodigoPersonaDestinoAccion = historialPagoExistente.CodigoPersona, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); } else if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.Rechazado) { historialPagoExistente.ObservacionesAdministrador = historialPagoParaModificar.ObservacionesAdministrador; NoticiasRepository noticiasRepo = new NoticiasRepository(context); notificacion = new Notificaciones { CodigoTipoNotificacion = (int)TipoNotificacionEnum.PlanRechazado, CodigoPlanNuevo = historialPagoParaModificar.CodigoPlan, CodigoPersonaDestinoAccion = historialPagoParaModificar.CodigoPersona, Creacion = DateTime.Now }; noticiasRepo.CrearNotificacion(notificacion); } else if (historialPagoParaModificar.EstadoDelPago == EstadoDeLosPagos.PendientePorAprobar) { if (string.IsNullOrWhiteSpace(historialPagoParaModificar.ReferenciaPago) || historialPagoParaModificar.CodigoArchivo <= 0) { throw new InvalidOperationException("No puedes reportar el pago de un plan si no ofreces la referencia del pago y/o el archivo"); } historialPagoExistente.ReferenciaPago = historialPagoParaModificar.ReferenciaPago; historialPagoExistente.CodigoArchivo = historialPagoParaModificar.CodigoArchivo; historialPagoExistente.ObservacionesCliente = historialPagoParaModificar.ObservacionesCliente; } WrapperSimpleTypesDTO wrapperModificarEstadoPagoPersona = new WrapperSimpleTypesDTO(); TimeLineNotificaciones timeLineNotificacion = null; wrapperModificarEstadoPagoPersona.NumeroRegistrosAfectados = await context.SaveChangesAsync(); if (wrapperModificarEstadoPagoPersona.NumeroRegistrosAfectados > 0) { wrapperModificarEstadoPagoPersona.Exitoso = true; if (notificacion != null && notificacion.Consecutivo > 0) { NoticiasRepository noticiasRepo = new NoticiasRepository(context); if (notificacion.CodigoPersonaDestinoAccion.HasValue && notificacion.CodigoPersonaDestinoAccion > 0) { PersonasRepository personaRepo = new PersonasRepository(context); int codigoIdioma = await personaRepo.BuscarCodigoIdiomaDeLaPersona(notificacion.CodigoPersonaDestinoAccion.Value); notificacion.CodigoIdiomaUsuarioBase = codigoIdioma; } timeLineNotificacion = new TimeLineNotificaciones(await noticiasRepo.BuscarNotificacion(notificacion)); } } return(Tuple.Create(wrapperModificarEstadoPagoPersona, timeLineNotificacion)); } }