Example #1
0
        public async Task <IActionResult> Add([FromBody] Intervento chiamata)
        {
            var codiceSede = Request.Headers["codicesede"];
            var idUtente   = Request.Headers["IdUtente"];

            var command = new AddInterventoCommand()
            {
                Chiamata   = chiamata,
                CodiceSede = codiceSede,
                CodUtente  = idUtente
            };

            try
            {
                this._Addhandler.Handle(command);
                return(Ok(_getSintesiRichiestaByCodice.GetSintesi(command.Chiamata.Codice)));
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains(Costanti.UtenteNonAutorizzato))
                {
                    return(StatusCode(403, Costanti.UtenteNonAutorizzato));
                }
                return(BadRequest());
            }
        }
Example #2
0
        public async Task <IActionResult> Add([FromBody] Intervento chiamata)
        {
            var codiceSede = Request.Headers["codicesede"];
            var idUtente   = Request.Headers["IdUtente"];

            var command = new AddInterventoCommand()
            {
                Chiamata   = chiamata,
                CodiceSede = codiceSede.ToString().Split(',', StringSplitOptions.RemoveEmptyEntries)[0],
                CodUtente  = idUtente
            };

            try
            {
                _Addhandler.Handle(command);
                return(Ok(_getSintesiRichiestaByCodice.GetSintesi(command.Chiamata.Codice)));
            }
            catch (Exception ex)
            {
                if (ex.Message.Contains(Costanti.UtenteNonAutorizzato))
                {
                    return(StatusCode(403, new { message = Costanti.UtenteNonAutorizzato }));
                }
                return(BadRequest(new { message = ex.Message }));
            }
        }
Example #3
0
        public async Task <IActionResult> Add([FromBody] Intervento chiamata)
        {
            var command = new AddInterventoCommand()
            {
                Chiamata = chiamata
            };

            try
            {
                this._Addhandler.Handle(command);
                return(Ok(command.Chiamata));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Example #4
0
        public async Task <IActionResult> InserisciIntervento([FromForm] Intervento i)
        {
            Intervento intervento = new Intervento()
            {
                NomeCliente = i.NomeCliente,
                Data        = DateTime.Now,
                Luogo       = i.Luogo,
                Lavoro      = i.Lavoro,
                Tipologia   = i.Tipologia,
                Note        = i.Note,
                Prezzo      = i.Prezzo,
                Foto        = ""
            };

            if (i.Tipologia == "elettrico")
            {
                using (SqlConnection connection = new SqlConnection(""))
                {
                    var query = "INSERT INTO [dbo].[InterventoEsterno]" +
                                "([NomeCliente], [Luogo] , [Data], [Lavoro], [Foto]) " +
                                "VALUES (@NomeCliente, @Luogo, @Data, @Lavoro, @Foto)";

                    connection.Execute(query, intervento);

                    connection.Close();
                }
            }



            if (i.Tipologia != "elettrico")
            {
                using (SqlConnection connection = new SqlConnection(""))
                {
                    var query = "INSERT INTO [dbo].[Intervento]" +
                                "([NomeCliente], [Luogo] , [Data], [Lavoro], [Tipologia], [Note], [Prezzo], [Foto]) " +
                                "VALUES (@NomeCliente, @Luogo, @Data, @Lavoro, @Tipologia, @Note, @Prezzo, @Foto)";

                    connection.Execute(query, intervento);

                    connection.Close();
                }
            }

            return(RedirectToAction("Index", "Cantiere"));
        }
Example #5
0
        private void popupWindowShowAction1_Execute(object sender, PopupWindowShowActionExecuteEventArgs e)
        {
            IObjectSpace space = View.ObjectSpace;                    //.CreateNestedObjectSpace();

            Intervento intervento = View.CurrentObject as Intervento; // space.FindObject<Intervento>(CriteriaOperator.Parse($"[Oid]={((Intervento)View.CurrentObject).Oid}"), false);

            foreach (DDTAcquisto ddtAcquisto in e.PopupWindowViewSelectedObjects)
            {
                foreach (DDTAcquistoElencoMateriale materiale in ddtAcquisto.ElencoMateriale)
                {
                    RicambiUtilizzati ricambio = space.CreateObject <RicambiUtilizzati>();
                    ricambio.Articolo   = materiale.Articolo;
                    ricambio.Quantità   = materiale.Quantita;
                    ricambio.Intervento = intervento;
                }
            }

            View.ObjectSpace.CommitChanges();
        }
        public async Task SendMailPreventivo(Intervento intervento)
        {
            var cantiere = await _cantiereRepo.Get(intervento.IdCantiere);

            var smtpClient = new SmtpClient
            {
                Host        = "smtp-mail.outlook.com", // set your SMTP server name here
                Port        = 587,                     // Port
                EnableSsl   = true,
                Credentials = new NetworkCredential(_configuration["Email:Username"], _configuration["Email:Password"])
            };

            using (var message = new MailMessage(_configuration["Email:Username"], cantiere.EmailCliente)
            {
                Subject = "Preventivo",
                Body = $"Salve, il preventivo per l'intervento presso {cantiere.Luogo} è di {intervento.StimaCosto}"
            })
            {
                await smtpClient.SendMailAsync(message);
            }
        }
        public async Task <IActionResult> CreateIntervento(InterventoViewModel intervento)
        {
            Intervento i = new Intervento
            {
                IdCantiere = intervento.IdCantiere,
                Note       = intervento.Note,
                StimaCosto = intervento.StimaCosto,
                Tipo       = intervento.Tipo
            };

            if (intervento.Photo != null)
            {
                CloudStorageAccount storageAccount =
                    CloudStorageAccount.Parse(_configuration["ConnectionStrings:StorageAccountCS"]);
                CloudBlobClient cbc = storageAccount.CreateCloudBlobClient();

                var photoContainer = cbc.GetContainerReference("interventi");
                var id             = Guid.NewGuid();
                var fileExtension  = Path.GetExtension(intervento.Photo.FileName);

                var blobName = $"photo/{id}{fileExtension}";

                var blobRef = photoContainer.GetBlockBlobReference(blobName);


                using (var stream = intervento.Photo.OpenReadStream())
                {
                    await blobRef.UploadFromStreamAsync(stream);
                }


                i.UriPhoto = blobRef.Uri.AbsoluteUri;
            }
            await _interventoRepo.InsertIntervento(i);



            return(RedirectToAction("GetCantiereDetails", intervento.IdCantiere));
        }
        private void simpleAction1_Execute(object sender, SimpleActionExecuteEventArgs e)
        {
            IObjectSpace space      = Application.CreateObjectSpace();
            Intervento   intervento = space.GetObject((Intervento)View.CurrentObject);

            DDTVendita ddtvendita = space.CreateObject <DDTVendita>();

            ddtvendita.Cliente = intervento.Cliente;
            ddtvendita.Data    = intervento.DataIntervento;

            foreach (var materiale in intervento.RicambiUtilizzati)
            {
                DDTVenditaElencoMateriale elencoMateriale = space.CreateObject <DDTVenditaElencoMateriale>();
                elencoMateriale.Articolo = materiale.Articolo;
                elencoMateriale.Quantita = materiale.Quantità;
                elencoMateriale.DDT      = ddtvendita;
            }

            DetailView dv = Application.CreateDetailView(space, ddtvendita, true);

            dv.ViewEditMode = DevExpress.ExpressApp.Editors.ViewEditMode.Edit;
            e.ShowViewParameters.CreatedView = dv;
        }
        public async Task AddIntervento(Intervento inputIntervento, Dictionary <Materiale, decimal> choosenMateriale,
                                        Dictionary <Operatore, double> operatoriCoinvolti, string description, string note, Cantiere cantiere, string data,
                                        decimal costoUrgenza, bool isUrgenza = false)
        {
            if (_context.Interventos.Contains(inputIntervento)) // if this intervento exists already
            {
                inputIntervento.CantieriId   = cantiere.Id;
                inputIntervento.Descrizione  = description;
                inputIntervento.IsUrgenza    = isUrgenza;
                inputIntervento.Data         = data == "--" ? new DateTime() : DateTime.Parse(data);
                inputIntervento.CostoUrgenza = costoUrgenza;
                inputIntervento.Note         = note;
                _context.Interventos.Update(inputIntervento);

                foreach (var operatore in operatoriCoinvolti)
                {
                    var existingInterventoOperatore =
                        _context.InterventoOperatores.FirstOrDefault(x => x.OperatoriId == operatore.Key.Id && x.InterventiId == inputIntervento.Id);
                    if (existingInterventoOperatore != null) // the operatore exists already
                    {
                        existingInterventoOperatore.OreSpese = Convert.ToDecimal(operatore.Value);
                        _context.Update(existingInterventoOperatore);
                    }
                    else
                    {
                        var interventoOperatore = new InterventoOperatore
                        {
                            OperatoriId  = operatore.Key.Id,
                            OreSpese     = Convert.ToDecimal(operatore.Value),
                            InterventiId = inputIntervento.Id
                        };

                        _context.Add(interventoOperatore);
                    }
                }

                var interventoMateriali = new List <InterventoMateriale>();
                foreach (var materiale in choosenMateriale)
                {
                    var existingMateriale = _context.InterventoMateriales.FirstOrDefault(x => x.MaterialeId == materiale.Key.Id && x.InterventiId == inputIntervento.Id);
                    if (existingMateriale != null) // the materiale exists already
                    {
                        existingMateriale.Quantita = materiale.Value;
                        _context.Update(existingMateriale);
                    }
                    else
                    {
                        var interventoMateriale = new InterventoMateriale
                        {
                            MaterialeId  = materiale.Key.Id,
                            Quantita     = materiale.Value,
                            InterventiId = inputIntervento.Id
                        };

                        _context.Add(interventoMateriale);
                    }
                }
            }
            else
            {
                var intervento = new Intervento
                {
                    CantieriId   = cantiere.Id,
                    Descrizione  = description,
                    IsUrgenza    = isUrgenza,
                    Data         = data == "--" ? new DateTime() : DateTime.Parse(data),
                    CostoUrgenza = costoUrgenza,
                    Note         = note
                };
                _context.Interventos.Add(intervento);
                _context.SaveChanges();

                var interventoOperatore = new List <InterventoOperatore>();
                foreach (var operatore in operatoriCoinvolti)
                {
                    interventoOperatore.Add(new InterventoOperatore
                    {
                        OperatoriId  = operatore.Key.Id,
                        OreSpese     = Convert.ToDecimal(operatore.Value),
                        InterventiId = intervento.Id
                    });
                }

                _context.AddRange(interventoOperatore);
                _context.SaveChanges();

                var interventoMateriali = new List <InterventoMateriale>();
                foreach (var materiale in choosenMateriale)
                {
                    interventoMateriali.Add(new InterventoMateriale
                    {
                        MaterialeId  = materiale.Key.Id,
                        Quantita     = materiale.Value,
                        InterventiId = intervento.Id
                    });
                }

                _context.AddRange(interventoMateriali);
                _context.SaveChanges();
            }

            await _context.SaveChangesAsync();
        }