public ActionResult UtilizaChave(string Kcode) { //Valida Chave var rptKeys = Uow.GetRepository <ReportKey>().All(); var rptKey = (from x in rptKeys where x.KeyCode.Equals(Kcode) select x).FirstOrDefault(); // se esta ativa if (rptKey == null) { ViewBag.KeyUsed = "Licença inválida"; return(View("Relatorios")); } else // se esta ativa { if (rptKey.IsActive == true) { // checkProfile => se não tem adiciona user var user = User.Identity.GetUserId(); Uow.SetUpProfile(1, user, "Especialista"); //inativa rptKey.IsActive = false; // associa user e licença var userMapKey = new UserMapKey() { IdKey = rptKey.Id, IdUser = IdCurUser }; Uow.GetRepository <UserMapKey>().Add(userMapKey); ViewBag.KeyUsed = "Foram adicionados " + rptKey.ReportNumber.ToString() + " relatórios à sua conta"; return(View("Relatorios")); } else //inativa { ViewBag.KeyUsed = "Essa licença já foi utilizada"; return(View("Relatorios")); } } }