none
Não consigo inserir um dado em uma tabela no servidor online RRS feed

  • Pergunta

  • Bom dia pessoal, alguém já teve problemas em salvar um dado em somente uma tabela em um servidor online?

    Eu estou fazendo uma aplicação onde alteramos nossa forma de autentificação, antes usamos que era "Contas de Usuário Individual", para autentificação do forms, porem no servidor online nossa tabela User que criamos não esta mais inserindo dados, ele voltar a chave primaria nula, já na base local ele funciona corretamente.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using Microsoft.AspNet.Identity;
    using Microsoft.AspNet.Identity.EntityFramework;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    using macpartner.Models.CustomValidation;
    
    namespace macpartner.Models
    {
       
        public class User 
        {
    
            public static object Identity { get; internal set; }
            [Key]
    
            public int UserId { get; set; }
    
            [Required(ErrorMessage = "Preencher o campo Email")]// Seta o campo Email como Requerido, ou seja, obrigatório
            [MaxLength(50, ErrorMessage = "O campo Email recebe no máximo 250 caracteres")]// Limite de caracteres que podem ser inseridos
            [Display(Name ="Email")]// Alimenta a Label do campo Email
            [DataType(DataType.EmailAddress)]// Tipo de Dados do Banco
            [Index(IsUnique = true)]
            public string UserName { get; set; }
    
            [Required(ErrorMessage = "O campo Nome é obrigatório.")]// Seta o campo Nome como Requerido, ou seja, obrigatório
            [MaxLength(50, ErrorMessage = "O campo Nome recebe no máximo 50 caracteres")]// Limite de caracteres que podem ser inseridos
            [Display(Name = "Nome")]// Alimenta a Label do campo Nome
    
            public string FirstName { get; set; }
    
    
            [Required(ErrorMessage = "O campo Nome é obrigatório.")]// Seta o campo Sobrenome como Requerido, ou seja, obrigatório
            [MaxLength(50, ErrorMessage = "O campo SobreNome recebe no máximo 50 caracteres")]// Limite de caracteres que podem ser inseridos
            [Display(Name = "Sobrenome")]// Alimenta a Label do campo Sobrenome
            public string LastName { get; set; }
    
            [Required]
            [StringLength(100, ErrorMessage = "A senha precisa ter no mínimo 4 caracteres.", MinimumLength = 4)]
            [DataType(DataType.Password)]
            [Display(Name = "Senha")]
            public string Password { get; set; }
    
            [DataType(DataType.Password)]
            [Display(Name = "Confirmação")]
            [Compare("Password", ErrorMessage = "A confirmação de senha e a senha não conferem.")]
            public string ConfirmPassword { get; set; }
    
            public bool ConfirmarEmail { get; set; }
            public Guid ActivationCode { get; set; }
            public string ResetPasswordCode { get; set; }
    
            public int PerfilId { get; set; }
    
    
            //inatival usuário
            public bool IsEnabled { get; set; }
    
            public bool IsColaborador { get; set; }
    
            [Display(Name = "Id Usuário Tiny")]
            public int TinyUserId { get; set; }
            public int ConsultorId { get; set; }
            public int CampanhaId { get; set; }
            public virtual ICollection<Lead> Leads { get; set; }
            public virtual ICollection<UserDadosBancarios> UserDadosBancarios { get; set; }
            public virtual ICollection<LeadCashBackLote> LeadCashBackLotes { get; set; }
            public virtual ICollection<LeadCashBack> LeadCashBacks { get; set; }
            public virtual ICollection<LeadPontos> LeadPontos { get; set; }
            public virtual Perfil Perfils { get; set; }
    
        //    IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
        //    {
        //        MacPartnerContext db = new MacPartnerContext();
        //        List<ValidationResult> validationResult = new List<ValidationResult>();
        //        var validateName = db.Users.FirstOrDefault(x => x.UserName == UserName);
        //        if (validateName != null)
        //        {
        //            ValidationResult errorMessage = new ValidationResult
        //            ("*Ops, esse E-mail já esta cadastrado em outra conta.", new[] { "UserName" });
        //            validationResult.Add(errorMessage);
        //        }
    
        //        return validationResult;
    
        //    }
        }
    }

    <system.web> <globalization culture="pt-BR" uiCulture="pt-BR" enableClientBasedCulture="false" /> <customErrors mode="Off" /> <authentication mode="Forms"> <forms loginUrl="~/Conta/Login"></forms> </authentication> <compilation debug="true" targetFramework="4.6.1" /> <httpRuntime targetFramework="4.6.1" /> <httpModules> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" /> </httpModules> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules> <remove name="ApplicationInsightsWebTracking" /> <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" /> </modules> </system.webServer> <runtime>

    using macpartner.Classes;
    using macpartner.Helpers;
    using macpartner.Models;
    using macpartner.Models.CustomAuthorise;
    using macpartner.Models.Services.Tiny;
    using PagedList;
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Entity;
    using System.Linq;
    using System.Net;
    using System.Threading.Tasks;
    using System.Web;
    using System.Web.Mvc;
    using System.Web.Security;
    
    namespace macpartner.Controllers
    {
        //Regras de permissões
       [AuthorizedAction]
        public class UsersController : Controller
        {
            private MacPartnerContext db = new MacPartnerContext();
            private static ApplicationDbContext userContext = new ApplicationDbContext();
    
            // GET: Users
            //[HttpGet]
            //public ActionResult Dashboard()
            //{
            //    return View();
            //}
    
    
            /// <summary>Retorna página inicial de usuários
            /// </summary>
            [HttpGet]
            public ActionResult Index(string sortOrder, string currentFilter, string searchString, int? page = null)
            {
    
                    ViewBag.CurrentSort = sortOrder;
    
                
                    var user = from s in db.Users
                               select s;
    
                    switch (sortOrder)
                    {
                        case "name_asc":
                            ViewBag.NameSortParm_firstName = "name_desc";
                            user = user.OrderByDescending(s => s.FirstName);
                            break;
    
                        case "name_desc":
                            ViewBag.NameSortParm_firstName = "name_asc";
                            user = user.OrderBy(s => s.FirstName);
                            break;
    
                        case "lastname_asc":
                            ViewBag.NameSortParm_lastName = "lastname_desc";
                            user = user.OrderByDescending(s => s.LastName);
                            break;
    
                        case "lastname_desc":
                            ViewBag.NameSortParm_lastName = "lastname_asc";
                            user = user.OrderBy(s => s.LastName);
                            break;
    
                        default:
                            ViewBag.NameSortParm_firstName = "name_asc";
                            ViewBag.NameSortParm_lastName = "lastname_asc";
                            user = user.OrderByDescending(s => s.UserId);
                            break;
                    }
    
    
                    if (searchString != null)
                    {
                        page = 1;
                    }
                    else
                    {
                        searchString = currentFilter;
                    }
    
                    ViewBag.CurrentFilter = searchString;
    
    
                    if (!String.IsNullOrEmpty(searchString))
                    {
                        user = user.Where(s => s.FirstName.Contains(searchString)
                                               || s.LastName.Contains(searchString));
                    }
    
    
                    page = (page ?? 1);
                    return View(user.ToPagedList((int)page, 5));
                
            }
    
    
            /// <summary>Retorna página de detalhes de usuarios
            /// </summary>
            // GET: Users/Details/5
            public async Task<ActionResult> Details(int? id)
    
            {            
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                User user = await db.Users.FindAsync(id);
                if (user == null)
                {
                    return HttpNotFound();
                }
                return View(user);
            }
    
            /// <summary>Retorna formulário de cadastro de novo usuário
            /// </summary>
            // GET: Users/Create
            [HttpGet]
            public ActionResult Create()
            {
                TinyAPI api = new TinyAPI();
                var vendedores_solucoes = api.ListaVendedores("solucoes");
                var vendedores_automacao = api.ListaVendedores("automacao");
                var vendedores = new List<TinyVendedor>();
                TinyVendedor sel_vendedor = new TinyVendedor(0, "Selecione...");
                vendedores.Add(sel_vendedor);
    
                foreach (var item in vendedores_solucoes)
                {
                    vendedores.Add(item);
                }
    
                foreach (var item in vendedores_automacao)
                {
                    vendedores.Add(item);
                }
                ViewBag.PerfilId = new SelectList(CombosHelper.GetPerfil(), "PerfilId", "Name");
                ViewBag.Vendedores = vendedores;
    
                return View();
            }
    
    
            /// <summary>Persiste um novo usuário no banco de dados
            /// </summary>
            // POST: Users/Create
            // Para se proteger de mais ataques, ative as propriedades específicas a que você quer se conectar. Para 
            // obter mais detalhes, consulte https://go.microsoft.com/fwlink/?LinkId=317598.
            [HttpPost]
            [ValidateAntiForgeryToken]
            public async Task<ActionResult> Create(User user)
            {
                user.IsEnabled = true;
                user.ConfirmarEmail = true;
                user.ActivationCode = Guid.NewGuid();
                user.Password = Crypto.Encrypt(user.Password);
                user.ConfirmPassword = Crypto.Encrypt(user.ConfirmPassword);
                
                if (user.IsColaborador)
                {
                    var campanha = db.Campanhas.Where(c => c.Tipo == "Recorrência").First();
    
                    user.CampanhaId = campanha.CampanhaId;
                }
                else
                {
                    var campanha = db.Campanhas.Where(c => c.Tipo == "Cashback").First();
    
                    user.CampanhaId = campanha.CampanhaId;
                }
    
                User userPai = db.Users.Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
    
                user.ConsultorId = userPai.UserId;
    
                if (ModelState.IsValid)
                {
                    var isExiste = UserHelper.EmailExiste(user.UserName);
                    if (isExiste)
                    {
                        ModelState.AddModelError("", "");
                        ViewBag.Message = "Usuário já existe na base";
                        return View(user);
                    }
    
                    db.Users.Add(user);
    
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
                else
                {
                    ModelState.AddModelError("","");
                }
    
                ViewBag.PerfilId = new SelectList(CombosHelper.GetPerfil(), "PerfilId", "Name", user.PerfilId);
    
                return View(user);
            }
    
    
            /// <summary>Retorna formulário de edição de usuário
            /// </summary>
            // GET: Users/Edit/5
            public async Task<ActionResult> Edit(int? id)
            {
    
                TinyAPI api = new TinyAPI();
                var vendedores_solucoes = api.ListaVendedores("solucoes");
                var vendedores_automacao = api.ListaVendedores("automacao");
                var vendedores = new List<TinyVendedor>();
                TinyVendedor sel_vendedor = new TinyVendedor(0, "Selecione...");
                vendedores.Add(sel_vendedor);
    
                foreach (var item in vendedores_solucoes)
                {
                    vendedores.Add(item);
                }
    
                foreach (var item in vendedores_automacao)
                {
                    vendedores.Add(item);
                }
    
               
    
                ViewBag.Vendedores = vendedores;
                //ViewBag.Colaboradores = db.Users.Where(u => u.IsColaborador).ToList();
    
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                User user = await db.Users.FindAsync(id);
                if (user == null)
                {
                    return HttpNotFound();
                }
                ViewBag.Colaboradores = new SelectList(CombosHelper.GetConsultoReponsvel(), "UserId", "FirstName", user.ConsultorId);
                ViewBag.PerfilId = new SelectList(CombosHelper.GetPerfil(), "PerfilId", "Name", user.PerfilId);
    
                return View(user);
            }
    
    
            /// <summary>Persiste edição de usuário no banco de dados
            /// </summary>
            // POST: Users/Edit/5
            // Para se proteger de mais ataques, ative as propriedades específicas a que você quer se conectar. Para 
            // obter mais detalhes, consulte https://go.microsoft.com/fwlink/?LinkId=317598.
            [HttpPost]
            [ValidateAntiForgeryToken]
            
            public async Task<ActionResult> Edit(User user)
            {
                if (user.IsColaborador)
                {
                    var campanha = db.Campanhas.Where(c => c.Tipo == "Recorrência").First();
                    user.CampanhaId = campanha.CampanhaId;
    
                }
                else
                {
                    var campanha = db.Campanhas.Where(c => c.Tipo == "Cashback").First();
                    user.CampanhaId = campanha.CampanhaId;
                }
    
                //Variável que guarda um objeto com o usuário antigo
                var db2 = new MacPartnerContext();
                var oldUser = db2.Users.Find(user.UserId);
    
                string oldPassword = oldUser.Password;
                string oldCPassword = oldUser.ConfirmPassword;
                user.Password = oldPassword;
                user.ConfirmarEmail = oldUser.ConfirmarEmail;
                user.ActivationCode = oldUser.ActivationCode;
                user.ConfirmPassword = oldCPassword;
               
    
                if (ModelState.IsValid)
                {
                    if (user.ConsultorId == 0)
                    {
                        user.ConsultorId = oldUser.ConsultorId;
                    }
                   // db2.Dispose();
    
                    db.Entry(user).State = EntityState.Modified;
                    await db.SaveChangesAsync();
                    return RedirectToAction("Index");
    
                }
                ViewBag.Colaboradores = new SelectList(CombosHelper.GetConsultoReponsvel(), "UserId", "FirstName", user.ConsultorId);
                ViewBag.PerfilId = new SelectList(CombosHelper.GetPerfil(), "PerfilId", "Name", user.PerfilId);
                return View(user);
            }
    
    
            /// <summary>Retorna página de exclusão de usuário
            /// </summary>
            // GET: Users/Delete/5
            public async Task<ActionResult> Delete(int? id)
            {
                if (id == null)
                {
                    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
                }
                User user = await db.Users.FindAsync(id);
                if (user == null)
                {
                    return HttpNotFound();
                }
                return View(user);
            }
    
    
            /// <summary>Executa confirmação de exclusão de usuário
            /// </summary>
            // POST: Users/Delete/5
            [HttpPost, ActionName("Delete")]
            [ValidateAntiForgeryToken]
            public ActionResult DeleteConfirmed(int id)
            {
                User user = db.Users.Find(id);
                db.Users.Remove(user);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
    
    
    
            protected override void Dispose(bool disposing)
            {
                if (disposing)
                {
                    db.Dispose();
                }
                base.Dispose(disposing);
            }
        }
    }
    
    


    • Editado Wesley27 segunda-feira, 9 de setembro de 2019 13:52
    segunda-feira, 9 de setembro de 2019 13:48

Todas as Respostas