Example #1
0
        public string updateUnifyCustomer(RequestCustomer request)
        {
            request.UserName = User.Identity.Name;
            request.URL      = this.Url.Link("Default", new { Controller = "Account", Action = "Login" });
            IRepositoryCustomer customer   = new Customer();
            ResultJson          jsonResult = new ResultJson();

            // Primero Hace la Unificación y si es Correcto hace la Actualización de Socia
            using (DbContextJulio db = new DbContextJulio())
            {
                var     aspnetusers_id = db.AspNetUsers.Where(s => s.UserName == User.Identity.Name).FirstOrDefault().Id;
                dynamic _participante  = null;
                if (!string.IsNullOrEmpty(request.Correo))
                {
                    _participante = (from p in db.participante
                                     join t in db.transaccion on p.id equals t.participante_id
                                     where p.correo_electronico == request.Correo.Trim() && p.status_participante_id != 13 && p.status_participante_id != 14 && t.tipo_transaccion_id == 1 && p.id != request.Id
                                     select new
                    {
                        id = p.id,
                        clave = p.clave,
                        fecha = t.fecha
                    }
                                     ).OrderByDescending(t => t.fecha).FirstOrDefault();
                }
                if (_participante == null)
                {
                    if (!string.IsNullOrEmpty(request.Tel_celular) && request.Tel_celular.Trim() != "0")
                    {
                        _participante = (from p in db.participante
                                         join pt in db.participante_telefono on p.id equals pt.participante_id
                                         join t in db.transaccion on p.id equals t.participante_id
                                         where pt.telefono == request.Tel_celular.Trim() && pt.tipo_telefono_id == 3 && p.status_participante_id != 13 && p.status_participante_id != 14 && t.tipo_transaccion_id == 1 && p.id != request.Id
                                         select new
                        {
                            id = p.id,
                            clave = p.clave,
                            fecha = t.fecha
                        }).OrderByDescending(t => t.fecha).FirstOrDefault();
                    }
                }
                // Conserva el status del participante actual, en caso de haber un error
                decimal status_participante_id = customer.ObtieneStatusPartipanteId(request);
                // Actualiza status participante como activo
                customer.ActualizaStatusParticipante(request, 2);
                Dictionary <string, object> parameters = new Dictionary <string, object>();
                parameters.Add("@transferencia", "UNIFICACION");
                parameters.Add("@NoTarjeta", _participante.clave);
                parameters.Add("@NuevaTarjeta", request.Num_tarjeta);
                parameters.Add("@participante_id", _participante.id);
                parameters.Add("@aspnetusers_id", aspnetusers_id);
                DataSet setTables = db.GetDataSet("[dbo].[usp_transfiere_tarjeta]", CommandType.StoredProcedure, parameters);
                if (setTables.Tables[0].Rows[0]["errorId"].ToString() == "0")
                {
                    // Actualiza status participante como estaba. Esto para que permita pasar el proceso de actualizar socia
                    customer.ActualizaStatusParticipante(request, status_participante_id);
                    jsonResult            = customer.UpdateCustomer(request);
                    jsonResult.jsonObject = JsonConvert.SerializeObject(setTables.Tables[0]);
                }
                else // Ocurrio un error se regresa como estaba el status del participante
                {
                    // Actualiza status participante como estaba
                    customer.ActualizaStatusParticipante(request, status_participante_id);
                    jsonResult.jsonObject = JsonConvert.SerializeObject(setTables.Tables[0]);
                }
            }
            return(JsonConvert.SerializeObject(jsonResult));
        }