public async Task <IActionResult> Create([Bind("DadorId,Nome,Morada,DataNasc,LocalNasc,DocIdentificacao,Nacionalidade,Profissao,GrauEscolaridade,EstadoCivil,NumFilhos,Altura,Peso,CorPele,CorOlhos,CorCabelo,TexturaCabelo,GrupoSanguineo,Etnia,IniciaisDador,FaseDador,EstadoDador,DadosDador,NumAbortos,TotalGestacoes")] Dador dador, Microsoft.AspNetCore.Http.IFormFile file)
        {
            var fileUpload = "";


            dador.TipoRegisto = RegistoDadorEnum.Normal;

            if (ModelState.IsValid)
            {
                var settings  = _context.Settings.FirstOrDefault();
                var happyHour = false;
                if (settings != null)
                {
                    if (DateTime.Now.TimeOfDay <= settings.HappyHourEnd &&
                        DateTime.Now.TimeOfDay >= settings.HappyHourBegin)
                    {
                        //happyHour = true;
                        dador.TipoRegisto = RegistoDadorEnum.HappyHour;

                        //save image
                        if (file.Length > 0)
                        {
                            fileUpload = await file.SaveFileDefault(_hostingEnvironment,
                                                                    Path.Combine(_hostingEnvironment.WebRootPath, "uploads", "dador"));

                            if (fileUpload != "")
                            {
                                dador.FotoId = fileUpload;
                                // Verificação cara

                                var resultado = await MatchHelper.MicrosoftCognitiveServices.Faces.FindSimilarFaceList(
                                    Path.Combine(_hostingEnvironment.WebRootPath, "uploads", "dador", fileUpload), fileUpload);

                                if (resultado.Item1.Any())
                                {
                                    if (resultado.Item1.FirstOrDefault().Confidence >= settings.PhotoMatchValue)
                                    {
                                        dador.TipoRegisto = RegistoDadorEnum.Extra;
                                    }
                                }
                            }
                        }
                    }
                }

                dador.IniciaisDador = RetrieveInitials(dador.Nome);

                dador = _encryptor.EncryptData(dador);

                _context.Add(dador);
                await _context.SaveChangesAsync();



                return(RedirectToAction("IndexRegistered", "Home"));
            }
            return(View(dador));
        }
Example #2
0
        public async Task <IActionResult> Create([Bind("Id,Data,Centro,RefExterna,IdadeHomem,RacaHomem,AlturaHomem,CorCabeloHomem,GrupoSanguineoHomem,TexturaCabeloHomem,CorOlhosHomem,CorPeleHomem,IdadeMulher,RacaMulher,AlturaMulher,CorCabeloMulher,GrupoSanguineoMulher,TexturaCabeloMulher,CorOlhosMulher,CorPeleMulher")] PedidoGametasViewModel pedidoGametasViewModel, Microsoft.AspNetCore.Http.IFormFile fileHomem, Microsoft.AspNetCore.Http.IFormFile fileMulher)
        {
            if (ModelState.IsValid)
            {
                var novoCasal = new Models.Casal
                {
                    OriginouGravidez = SimNaoEnum.Indefinido,
                    NrFilhos         = 0,

                    IdadeHomem          = pedidoGametasViewModel.IdadeHomem,
                    RacaHomem           = pedidoGametasViewModel.RacaHomem,
                    AlturaHomem         = pedidoGametasViewModel.AlturaHomem,
                    CorCabeloHomem      = pedidoGametasViewModel.CorCabeloHomem,
                    GrupoSanguineoHomem = pedidoGametasViewModel.GrupoSanguineoHomem,
                    TexturaCabeloHomem  = pedidoGametasViewModel.TexturaCabeloHomem,
                    CorOlhosHomem       = pedidoGametasViewModel.CorOlhosHomem,
                    CorPeleHomem        = pedidoGametasViewModel.CorPeleHomem,

                    IdadeMulher          = pedidoGametasViewModel.IdadeMulher,
                    RacaMulher           = pedidoGametasViewModel.RacaMulher,
                    AlturaMulher         = pedidoGametasViewModel.AlturaMulher,
                    CorCabeloMulher      = pedidoGametasViewModel.CorCabeloMulher,
                    GrupoSanguineoMulher = pedidoGametasViewModel.GrupoSanguineoMulher,
                    TexturaCabeloMulher  = pedidoGametasViewModel.TexturaCabeloMulher,
                    CorOlhosMulher       = pedidoGametasViewModel.CorOlhosMulher,
                    CorPeleMulher        = pedidoGametasViewModel.CorPeleMulher
                };
                var pathUpload = Path.Combine(_hostingEnvironment.WebRootPath, "uploads", "casais");
                var fileUpload = "";
                //save image
                if (fileHomem.Length > 0)
                {
                    fileUpload = await fileHomem.SaveFileDefault(_hostingEnvironment, pathUpload);

                    if (fileUpload != "")
                    {
                        var fotoCasal = MatchHelper.MicrosoftCognitiveServices.Faces.AddFaceToFaceList(
                            Path.Combine(pathUpload, fileUpload), fileUpload);

                        novoCasal.FotoHomemId = fotoCasal.ToString();
                    }
                }
                if (fileMulher.Length > 0)
                {
                    fileUpload = await fileMulher.SaveFileDefault(_hostingEnvironment,
                                                                  Path.Combine(_hostingEnvironment.WebRootPath, "uploads", "casais"));

                    if (fileUpload != "")
                    {
                        var fotoCasal = MatchHelper.MicrosoftCognitiveServices.Faces.AddFaceToFaceList(
                            Path.Combine(pathUpload, fileUpload), fileUpload);

                        novoCasal.FotoHomemId = fotoCasal.ToString();
                    }
                }

                await _context.Casal.AddAsync(novoCasal);

                await _context.SaveChangesAsync();

                var objNovoCasal = await _context.Casal.LastOrDefaultAsync();

                var novoPedidoGametas = new PedidoGametas
                {
                    CasalId              = objNovoCasal.CasalID,
                    Data                 = pedidoGametasViewModel.Data,
                    Centro               = pedidoGametasViewModel.Centro,
                    RefExterna           = pedidoGametasViewModel.RefExterna,
                    EstadoProcessoPedido = EstadoProcesso.EmAnalise
                };

                await _context.PedidoGametas.AddAsync(novoPedidoGametas);

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(pedidoGametasViewModel));
        }