Пример #1
0
        public static List <Suceso> GetHistorialCronogramas(int cronogramaId, int deportePeriodoId, int competidorId)
        {
            List <Suceso>       lsu = new List <Suceso>();
            List <SqlParameter> lp  = new List <SqlParameter>();

            lp.Add(new SqlParameter("CronogramaId", cronogramaId));
            lp.Add(new SqlParameter("DeportePeriodoId", deportePeriodoId));
            lp.Add(new SqlParameter("CompetidorId", competidorId));

            DBTransaction db = new DBTransaction();

            DataTable dt         = db.GetStoreProcedure("conj.pHistorialCronograma", lp);
            int       FindIndice = -1;

            foreach (DataRow dr in dt.Rows)
            {
                Suceso sc = ConvertToSucesos(dr);
                sc.Competidor = Competidor.ConvertToCompetidor(dr);

                sc.Competidor.Equipo = Equipo.ConvertToEquipo(dr);
                sc.ParametrosSuceso  = ParametrosSuceso.ConvertToParametroSuceso(dr);
                sc.SucesoPersonas    = new List <SucesoPersona>();

                if (sc.ParametrosSuceso.RegistraPersona >= 1 && !string.IsNullOrEmpty(dr["PlanillaPersonaId"].ToString()))
                {
                    SucesoPersona scp = SucesoPersona.ConvertToSucesoPersona(dr);
                    scp.PlanillaPersona = PlanillaPersona.ConvertPlanillaPersona(dr, true);

                    FindIndice = lsu.FindIndex(delegate(Suceso s) { return(s.SucesoId == sc.SucesoId); });
                    if (FindIndice > 0)
                    {
                        lsu.ElementAt(FindIndice).SucesoPersonas.Add(scp);
                    }
                    else
                    {
                        sc.SucesoPersonas.Add(scp);
                        FindIndice = -1;
                    }
                }
                else
                {
                    FindIndice = -1;
                }
                if (FindIndice < 0)
                {
                    lsu.Add(sc);
                }
            }
            return(lsu);
        }
Пример #2
0
        public async Task <IHttpActionResult> ValidaServicioCompetidor(Competidor model)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                var entity = await _entityRepo.ValidaServicioCompetidor(model);

                return(Ok(entity));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
Пример #3
0
        public async Task <IHttpActionResult> UpdateEstado([FromBody] Competidor model)
        {
            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _entityRepo.UpdateEstado(model);

                return(Ok("Estado acualizado correctamente."));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);

                return(InternalServerError(e));
            }
        }
        public async Task <Competidor> GetByID(int id)
        {
            Competidor competidor = new Competidor();

            try
            {
                competidor = await _context.Competidores.FirstAsync(c => c.ID == id);
            }
            catch (Exception ex)
            {
                File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
                throw new Exception("Erro no banco de dados.");
            }

            return(competidor);
        }
Пример #5
0
        // GET: Competidors/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Competidor competidor = db.Competidors.Find(id);

            if (competidor == null)
            {
                return(HttpNotFound());
            }
            ViewBag.MarcaID = new SelectList(db.Marcas, "MarcaID", "Codigo", competidor.MarcaID);
            ViewBag.ZonaID  = new SelectList(db.Zonas, "ZonaID", "Codigo", competidor.ZonaID);
            return(View(competidor));
        }
Пример #6
0
        public async Task <IActionResult> Cadastrar(List <int> viewModel)
        {
            Competidor competidorTemp = new Competidor();
            Time       time           = await this._timeRepository.GetByCasa(_casa);

            foreach (var item in viewModel)
            {
                competidorTemp = await _competidorRepository.GetByID(item);

                competidorTemp.Time   = time;
                competidorTemp.TimeID = time.ID;
                await this._competidorRepository.Update(competidorTemp);
            }

            return(RedirectToAction("Index", "Time"));
        }
Пример #7
0
        public async Task Update(Competidor model)
        {
            try
            {
                var _model = await _dbComp.Competidor.FirstOrDefaultAsync(e => e.CompetidorId == model.CompetidorId);

                if (_model != null)
                {
                    _dbComp.Entry(_model).CurrentValues.SetValues(model);
                    await _dbComp.SaveChangesAsync();

                    //Se eliminan los adjuntos anteriores del registro, esto evita tener multiples listas de adjuntos (nuevos, viejos) por cada adjunto que agregue/elimine el usuario
                    var fksAdjuntos = await _dbComp.AdjuntoPorCompetidor.Where(e => e.CompetidorId == model.CompetidorId).ToListAsync();

                    if (fksAdjuntos.Count() > 0)
                    {
                        var listaAdjuntos = fksAdjuntos.Select(x => x.AdjuntoId).ToList();
                        _dbComp.AdjuntoPorCompetidor.RemoveRange(fksAdjuntos);
                        await _dbComp.SaveChangesAsync();

                        await new AdjuntoRepository().DeleteByCollectionIds(listaAdjuntos);
                    }

                    //Se registran los  adjuntos de nuevo
                    if (model.AdjuntoPorCompetidor.Count > 0)
                    {
                        foreach (var item in model.AdjuntoPorCompetidor)
                        {
                            Adjunto obj = new Adjunto();
                            obj.RutaCompleta = item.Adjunto.RutaCompleta;
                            obj.nombre       = item.Adjunto.nombre;
                            obj.ModuloId     = "CR";
                            var entities = _dbGEN.dbSetAdjuntos.Add(obj);
                            await _dbGEN.SaveChangesAsync();

                            await insertaAdjuntosCompetidor(item.Autor, obj.AdjuntoId, item.tipo, model.CompetidorId);//string autor, long IdAdjunto, string tipo, int idcompetidor
                        }

                        // await insertaAdjunto(model);
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #8
0
        public async Task UpdateEstado(Competidor model)
        {
            try
            {
                var _model = await _dbComp.Competidor.FirstOrDefaultAsync(e => e.CompetidorId == model.CompetidorId);

                if (_model != null)
                {
                    _model.Estado = model.Estado;

                    await _dbComp.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #9
0
        public async Task <Response> Update(Competidor competidor)
        {
            Response response = new Response();

            if (string.IsNullOrWhiteSpace(competidor.Nome))
            {
                response.Erros.Add("O nome do competidor deve ser informado.");
            }
            else if (competidor.Nome.Length < 2 || competidor.Nome.Length > 50)
            {
                response.Erros.Add("O nome do competidor deve ser informado.");
            }

            if (competidor.Escolaridade < Entity.Enums.Escolaridade.Quarto)
            {
                response.Erros.Add("Para se inscrever como competidor o aluno deve estar cursando no mínimo o quarto ano.");
            }

            if (competidor.Casa != competidor.Time.Casa)
            {
                response.Erros.Add("A casa do competidor é diferente da casa do time!");
            }

            if (response.Erros.Count > 0)
            {
                response.Sucesso = false;
                return(response);
            }

            try
            {
                await _competidorRepository.Update(competidor);

                response.Sucesso = true;
                return(response);
            }
            catch (Exception ex)
            {
                response.Erros.Add("Erro no banco de dados, contate o administrador.");
                response.Sucesso = false;
                File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
                return(response);
            }
        }
        public async Task <IActionResult> Cadastrar(CompetidorInsertViewModel viewModel)
        {
            var configuration = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <CompetidorInsertViewModel, Competidor>();
            });
            IMapper    mapper     = configuration.CreateMapper();
            Competidor competidor = mapper.Map <Competidor>(viewModel);

            try
            {
                await this._competidorService.Insert(competidor);
            }
            catch (Exception ex)
            {
                ViewBag.Errors = ex.Message;
            }

            return(View());
        }
        public async Task <Response> Insert(Competidor competidor)
        {
            Response response = new Response();

            try
            {
                this._context.Competidores.Add(competidor);
                await this._context.SaveChangesAsync();

                response.Sucesso = true;
            }
            catch (Exception ex)
            {
                response.Sucesso = false;
                response.Erros.Add("Erro no banco de dados.");
                File.WriteAllText("log.txt", ex.Message + " - " + ex.StackTrace);
            }

            return(response);
        }
Пример #12
0
        private async Task EliminaServicio(Competidor model)
        {
            try
            {
                foreach (var item in model.ServicioAntDel)
                {
                    var _model = await _dbComp.ServicioPorCompetidor.FirstOrDefaultAsync(e => e.ServicioId == item);

                    if (_model != null)
                    {
                        _dbComp.ServicioPorCompetidor.Remove(_model);
                        await _dbComp.SaveChangesAsync();
                    }
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #13
0
        public async Task <IHttpActionResult> Update([FromBody] Competidor model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                log.Info(new MDCSet(this.ControllerContext.RouteData));
                await _entityRepo.Update(model);

                return(Ok("Registro actualizado exitosamente!"));
            }
            catch (Exception e)
            {
                log.Error(new MDCSet(this.ControllerContext.RouteData), e);
                return(InternalServerError(e));
            }
        }
Пример #14
0
        public bool InsertCompetidorGolfCompetidor([FromBody] CompetidorGolfCompetidor gcompetidor)
        {
            Competidor     cp        = new Competidor();
            bool           resultado = true;
            GolfCompetidor gcp       = new GolfCompetidor();

            gcp.CompetidorId = gcompetidor.CompetidorId;
            gcp.CategoriaId  = gcompetidor.CategoriaId;
            gcp.Handicap     = gcompetidor.Handicap;
            gcp.Club         = gcompetidor.Club;
            if (gcompetidor.Accion == 0)
            {
                resultado = InsertGolfCompetidor(gcp);
            }
            else
            {
                resultado = resultado && UpdateGolfCompetidor(gcp);
            }

            return(resultado);
        }
Пример #15
0
        public ActionResult Competir([FromBody] Competidor competidor)
        {
            try
            {
                if (_competidorRepositorio.ExisteInscricao(competidor))
                {
                    return(BadRequest("Competidor já inscrito nesse campeonato"));
                }
                else if (_competidorRepositorio.EhOrganizador(competidor))
                {
                    return(BadRequest("Você não pode competir no seu próprio campeonato"));
                }

                competidor.StatusInscricaoId = (int)StatusCompetidorEnum.Pendente;
                _competidorRepositorio.Competir(competidor);
                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
Пример #16
0
        private async Task insertaProducto(Competidor model)
        {
            try
            {
                for (int i = 0; i < model.ProductoId.Length; i++)
                {
                    var Prod = model.ProductoId[i];

                    ProductoPorCompetidor obj = new ProductoPorCompetidor();
                    obj.Autor         = model.Autor;
                    obj.FechaRegistro = model.FechaRegistro;
                    obj.Estado        = true;
                    obj.ProductoId    = Prod;
                    obj.CompetidorId  = model.CompetidorId;
                    var entities = _dbComp.ProductoPorCompetidor.Add(obj);
                    await _dbComp.SaveChangesAsync();
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #17
0
        private void SendConfirmation( Competidor _record )
        {
            //url to send data to
            string apiUrl = "https://mandrillapp.com/api/1.0/messages/send-template.json";

            //account api key needed to send email
            //created at: https://mandrillapp.com/settings
            string mandrillKey = "uyacaLccRLJ6quQDIWuE8w";

            //name of the email template created in mandrill
            string mandrillTemplateId = "form-comprobante-tarjeta";

            //list of emails to send the email to
            List<string> toEmails = new List<string>();
            toEmails.Add( _record.CORREO );

            //list of to names for emails above
            List<string> toNames = new List<string>();
            toNames.Add("Mr. Example");

            //replacement values to add to the email
            //these replacement tags must be added to your Mandrill tempalte: ex: <a href="*|site_url|*">Site Url</a>
            List<KeyValuePair<string, string>> replacementValues = new List<KeyValuePair<string, string>>();
            replacementValues.Add(new KeyValuePair<string, string>("REGISTRO"           , _record.REGISTRO));
            replacementValues.Add(new KeyValuePair<string, string>("FCHREG"             , _record.FCHREG.ToString()));
            replacementValues.Add(new KeyValuePair<string, string>("APELLIDOS", ReplaceASCII(_record.APELLIDOS)));
            replacementValues.Add(new KeyValuePair<string, string>("NOMBRES", ReplaceASCII(_record.NOMBRES)));
            replacementValues.Add(new KeyValuePair<string, string>("DOCUMENTO"          , _record.DOCUMENTO));
            replacementValues.Add(new KeyValuePair<string, string>("CORREO"             , _record.CORREO));
            replacementValues.Add(new KeyValuePair<string, string>("ID"                 , _record.ID));
            replacementValues.Add(new KeyValuePair<string, string>("CATEGORIA", ReplaceASCII(_record.GetCategoria())));
            replacementValues.Add(new KeyValuePair<string, string>("TALLA"              , _record.TALLA       ));
            replacementValues.Add(new KeyValuePair<string, string>("EVENTO", ReplaceASCII(_record.GetEvento())));
            replacementValues.Add(new KeyValuePair<string, string>("SEXO"               , _record.SEXO));
            replacementValues.Add(new KeyValuePair<string, string>("INVOICENUMBER"      , _record.INVOICENUMBER));
            replacementValues.Add(new KeyValuePair<string, string>("CONFIRMATIONNUMBER" , _record.CONFIRMATIONNUMBER));
            replacementValues.Add(new KeyValuePair<string, string>("CI"                 , _record.CI));
            replacementValues.Add(new KeyValuePair<string, string>("CARDNUMBER"         , _record.CARDNUMBER));

            dynamic sendParams = new System.Dynamic.ExpandoObject();
            sendParams.key = mandrillKey;
            sendParams.template_name = mandrillTemplateId;
            sendParams.template_content = new List<dynamic>();

            sendParams.message = new System.Dynamic.ExpandoObject();
            sendParams.message.to = new List<dynamic>();

            //to emails
            for (int x = 0; x < toEmails.Count; x++)
            {
                sendParams.message.to.Add(new System.Dynamic.ExpandoObject());
                sendParams.message.to[x].email = toEmails[x];
            }

            //to names - in same order as to emails
            for (int x = 0; x < toNames.Count; x++)
            {
                //dont add if email wasnt added
                if (toEmails.Count >= x + 1)
                {
                    sendParams.message.to[x].name = toNames[x];
                }
            }

            //additional mandrill options
            sendParams.message.track_opens = true;
            //sendParams.message.track_clicks = true;

            //create replacement values object to merge in
            sendParams.message.global_merge_vars = new List<dynamic>();

            int counter = 0;
            foreach (var pair in replacementValues)
            {
                sendParams.message.global_merge_vars.Add(new System.Dynamic.ExpandoObject());
                sendParams.message.global_merge_vars[counter].name = pair.Key;
                sendParams.message.global_merge_vars[counter].content = pair.Value;

                counter++;
            }

            //json send parameters
            string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(sendParams);

            //create web client to post data
            var request = new System.Net.WebClient();

            //set content type to json since we are posting json data
            request.Headers[HttpRequestHeader.ContentType] = "application/json; charset=utf-8";

            //post json data and get the response
            string responseString = request.UploadString(apiUrl, jsonString);

            //read the results
            bool success = false;

            if (!string.IsNullOrWhiteSpace(responseString))
            {
                dynamic resultObj = Newtonsoft.Json.JsonConvert.DeserializeObject(responseString);
                if (resultObj != null)
                {
                    if (resultObj[0] != null)
                    {
                        if (resultObj[0].status == "sent")
                        {
                            success = true;
                            UpdateCompetidor(_record.REGISTRO);
                        }
                    }
                }
            }
        }
Пример #18
0
        /// <summary>
        /// Obtiene competidores acorde los parametros de busqueda por el usuario
        /// </summary>
        /// <returns>IEnumerable<Object></returns>
        public async Task <IEnumerable <Object> > GetConsultaParametrizadaCompetidores(Competidor parametros)
        {
            try
            {
                var competidores = (from cp in _dbComp.Competidor
                                    .Include(e => e.Empresa)
                                    .Include(e => e.SegmentoMercado)
                                    .Include(e => e.LineaDesarrolloTecnologico)
                                    select cp).AsNoTracking();

                var listaProductos = await(from p in _dbComp.ProductoPorCompetidor.AsNoTracking()
                                           select new
                {
                    p.ProductoId,
                    p.CompetidorId
                }).ToListAsync();

                var listaServicios = await(from s in _dbComp.ServicioPorCompetidor.AsNoTracking()
                                           select new
                {
                    s.ServicioId,
                    s.CompetidorId
                }).ToListAsync();

                if (competidores != null)
                {
                    if (parametros.EmpresaId != 0) //Busqueda por empresa
                    {
                        competidores = competidores.Where(e => e.EmpresaId == parametros.EmpresaId);
                    }
                    if (!String.IsNullOrEmpty(parametros.TipoCompetidor))  //Busqueda por tipo competidor
                    {
                        competidores = competidores.Where(e => e.TipoCompetidor != null && e.TipoCompetidor == parametros.TipoCompetidor);
                    }
                    if (parametros.LineaDesarrolloTecnologicoId != null)
                    {
                        if (parametros.LineaDesarrolloTecnologicoId == 0)
                        {
                            competidores = competidores.Where(x => x.LineaDesarrolloTecnologicoId == null);
                        }
                        else
                        {
                            competidores = competidores.Where(x => x.LineaDesarrolloTecnologicoId == parametros.LineaDesarrolloTecnologicoId);
                        }
                    }
                    if (parametros.SegmentoMercadoId != 0 && parametros.SegmentoMercadoId != null) //Busqueda por segmento de mercado
                    {
                        competidores = competidores.Where(e => e.SegmentoMercadoId != null && e.SegmentoMercadoId == parametros.SegmentoMercadoId);
                    }
                    if (parametros.idProducto != 0)
                    {
                        var tempLista = listaProductos.Where(e => e.ProductoId == parametros.idProducto).Select(x => x.CompetidorId);
                        if (tempLista.Count() > 0)
                        {
                            competidores = competidores.Where(e => tempLista.Contains(e.CompetidorId));
                        }
                    }
                    if (parametros.idServicio != 0)
                    {
                        var tempListaServ = listaServicios.Where(e => e.ServicioId == parametros.idServicio).Select(x => x.CompetidorId);
                        if (tempListaServ.Count() > 0)
                        {
                            competidores = competidores.Where(e => tempListaServ.Contains(e.CompetidorId));
                        }
                    }

                    //******Se inicia el proceso de proyeccion******
                    //Los resultados lo guardaremos en una lista de X objeto
                    List <BusquedaParamsCR> datos = competidores.Select(x => new BusquedaParamsCR //Es una clase no mapeada que contiene caracteristicas
                                                                                                  //que nos permiten albergar SOLO los datos necesarios
                    {
                        CompetidorId       = x.CompetidorId,                                      //Rescatamos los parametros que se requieren para el front
                        TipoCompetidor     = x.TipoCompetidor,
                        SegmentoMercado    = x.SegmentoMercado.NomSegMerc,
                        NombreEmpresa      = x.Empresa.NombreEmpresa,
                        Estado             = x.Estado,
                        LineaInvestigacion = x.LineaDesarrolloTecnologico.NomLinDesTec
                    }).ToList();

                    foreach (var d in datos)
                    {
                        var FKProductos = listaProductos.Where(e => e.CompetidorId == d.CompetidorId).Select(e => e.ProductoId).ToList();
                        d.listaProductos = await(from prod in _dbComp.Producto
                                                 where FKProductos.Contains(prod.ProductoId)
                                                 select prod.NomProd).AsNoTracking().ToListAsync();

                        var FKServicios = listaServicios.Where(e => e.CompetidorId == d.CompetidorId).Select(e => e.ServicioId).ToList();
                        d.listaServicios = await(from serv in _dbComp.Servicio
                                                 where FKServicios.Contains(serv.ServicioId)
                                                 select serv.NomServ).AsNoTracking().ToListAsync();
                    }

                    return(datos);
                }
                return(null);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e);
            }
        }
Пример #19
0
 public void Modificar([FromBody] Competidor competidor)
 {
     context.Update(competidor);
     context.SaveChanges();
 }
Пример #20
0
 public void Insertar([FromBody] Competidor competidor)
 {
     context.Add(competidor);
     context.SaveChanges();
 }
Пример #21
0
 public void AltaCompetidor(Competidor competidor)
 {
     CompetidoresRepositorio.AltaCompetidor(competidor);
 }
Пример #22
0
 public Competidor GetCompetidor(int competidorId)
 {
     return(Competidor.GetCompetidor(competidorId));
 }
 public void GuardarCompetidor(Competidor competidor)
 {
     contexto.Competidor.Add(competidor);
     contexto.SaveChanges();
 }
Пример #24
0
 public void GuardarCompetidor(Competidor competidor)
 {
     competidoresDAO.GuardarCompetidor(competidor);
 }
Пример #25
0
        public bool DeleteCompetidor(int competidorid)
        {
            Competidor cc = new Competidor();

            return(cc.DeleteCompetidor(competidorid));
        }
Пример #26
0
 public Task <Response> Delete(Competidor competidor)
 {
     throw new NotImplementedException();
 }