public bool SalvaRegistrazione(ControllerContext controller, DatabaseContext db) { CONTO_CORRENTE conto = db.CONTO_CORRENTE.Create(); conto.ID = Guid.NewGuid(); conto.TOKEN = Guid.NewGuid(); conto.DATA_INSERIMENTO = DateTime.Now; conto.STATO = (int)Stato.ATTIVO; db.CONTO_CORRENTE.Add(conto); db.SaveChanges(); PBKDF2 crypto = new PBKDF2(); PERSONA persona = db.PERSONA.Create(); persona.TOKEN = Guid.NewGuid(); persona.TOKEN_PASSWORD = crypto.GenerateSalt(1, 20); persona.PASSWORD = crypto.Compute(this.Password.Trim(), persona.TOKEN_PASSWORD); //persona.NOME = this.Nome.Trim(); //persona.COGNOME = this.Cognome.Trim(); persona.ID_CONTO_CORRENTE = conto.ID; persona.ID_ABBONAMENTO = db.ABBONAMENTO.SingleOrDefault(item => item.NOME == "BASE").ID; persona.DATA_INSERIMENTO = DateTime.Now; persona.STATO = (int)Stato.INATTIVO; db.PERSONA.Add(persona); if (db.SaveChanges() > 0) { PERSONA_EMAIL personaEmail = db.PERSONA_EMAIL.Create(); personaEmail.ID_PERSONA = persona.ID; personaEmail.EMAIL = this.Email.Trim(); personaEmail.TIPO = (int)TipoEmail.Registrazione; personaEmail.DATA_INSERIMENTO = DateTime.Now; personaEmail.STATO = (int)Stato.INATTIVO; db.PERSONA_EMAIL.Add(personaEmail); if (db.SaveChanges() > 0) { InvioEmail(controller, persona, personaEmail); return(true); } } return(false); }
public bool SalvaRegistrazione(ControllerContext controller, DatabaseContext db) { CONTO_CORRENTE conto = db.CONTO_CORRENTE.Create(); conto.ID = Guid.NewGuid(); conto.TOKEN = Guid.NewGuid(); conto.DATA_INSERIMENTO = DateTime.Now; conto.STATO = (int)Stato.ATTIVO; db.CONTO_CORRENTE.Add(conto); db.SaveChanges(); PBKDF2 crypto = new PBKDF2(); PERSONA persona = db.PERSONA.Create(); persona.TOKEN = Guid.NewGuid(); persona.TOKEN_PASSWORD = crypto.GenerateSalt(1, 20); persona.PASSWORD = crypto.Compute(this.Password.Trim(), persona.TOKEN_PASSWORD); persona.ID_CONTO_CORRENTE = conto.ID; persona.ID_ABBONAMENTO = db.ABBONAMENTO.SingleOrDefault(item => item.NOME == "BASE").ID; persona.DATA_INSERIMENTO = DateTime.Now; persona.STATO = (int)Stato.INATTIVO; // solo in caso di accesso con FB persona.FACEBOOK_TOKEN_SESSIONE = FacebookToken; persona.FACEBOOK_TOKEN_PERMANENTE = FacebookTokenPermanente; if (!string.IsNullOrWhiteSpace(this.Nome)) { persona.NOME = this.Nome.Trim(); } if (!string.IsNullOrWhiteSpace(this.Cognome)) { persona.COGNOME = this.Cognome.Trim(); } db.PERSONA.Add(persona); if (db.SaveChanges() > 0) { PERSONA_EMAIL personaEmail = db.PERSONA_EMAIL.Create(); personaEmail.ID_PERSONA = persona.ID; personaEmail.EMAIL = this.Email.Trim(); personaEmail.TIPO = (int)TipoEmail.Registrazione; personaEmail.DATA_INSERIMENTO = DateTime.Now; personaEmail.STATO = (int)Stato.INATTIVO; db.PERSONA_EMAIL.Add(personaEmail); if (db.SaveChanges() > 0) { PersonaModel utente = new PersonaModel(persona); // assegna bonus canale pubblicitario if (HttpContext.Current.Request.Cookies.Get("GXG_promo") != null) { string promo = HttpContext.Current.Request.Cookies.Get("GXG_promo").Value; utente.AddBonusCanalePubblicitario(db, promo); // reset cookie HttpCookie currentUserCookie = HttpContext.Current.Request.Cookies["GXG_promo"]; if (currentUserCookie != null) { HttpContext.Current.Response.Cookies.Remove("GXG_promo"); currentUserCookie.Expires = DateTime.Now.AddDays(-10); currentUserCookie.Value = null; HttpContext.Current.Response.SetCookie(currentUserCookie); } } InvioEmail(controller, persona, personaEmail); return(true); } } return(false); }