public async Task <IActionResult> Edit(int id, [Bind("Id,LakeId,Year,LakePart,CaMgEq,MgMgEq,NaKMgEq,ClMgEq,HCOMgEq,SOMgEq")] IonsaltWaterComposition ionsaltWaterComposition)
        {
            if (id != ionsaltWaterComposition.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(ionsaltWaterComposition);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!IonsaltWaterCompositionExists(ionsaltWaterComposition.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(ionsaltWaterComposition));
        }
        public async Task <IActionResult> Create([Bind("Id,LakeId,Year,LakePart,CaMgEq,MgMgEq,NaKMgEq,ClMgEq,HCOMgEq,SOMgEq")] IonsaltWaterComposition ionsaltWaterComposition)
        {
            if (ModelState.IsValid)
            {
                _context.Add(ionsaltWaterComposition);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(ionsaltWaterComposition));
        }
        public async Task <IActionResult> Upload(bool FirstRowHeader, IFormFile File)
        {
            try
            {
                string sContentRootPath = _hostingEnvironment.WebRootPath;
                sContentRootPath = Path.Combine(sContentRootPath, "Uploads");
                DirectoryInfo di = new DirectoryInfo(sContentRootPath);
                foreach (FileInfo filed in di.GetFiles())
                {
                    try
                    {
                        filed.Delete();
                    }
                    catch
                    {
                    }
                }
                string path_filename = Path.Combine(sContentRootPath, Path.GetFileName(File.FileName));
                using (var stream = new FileStream(Path.GetFullPath(path_filename), FileMode.Create))
                {
                    await File.CopyToAsync(stream);
                }
                FileInfo fileinfo = new FileInfo(Path.Combine(sContentRootPath, Path.GetFileName(path_filename)));
                using (ExcelPackage package = new ExcelPackage(fileinfo))
                {
                    int start_row = 1;
                    if (FirstRowHeader)
                    {
                        start_row++;
                    }
                    List <IonsaltWaterComposition> ionsaltWaterCompositions = new List <IonsaltWaterComposition>();
                    for (int i = start_row; ; i++)
                    {
                        if (package.Workbook.Worksheets.FirstOrDefault().Cells[i, 1].Value == null)
                        {
                            break;
                        }
                        IonsaltWaterComposition ionsaltWaterComposition = new IonsaltWaterComposition();

                        try
                        {
                            ionsaltWaterComposition.LakeId   = Convert.ToInt32(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 1].Value);
                            ionsaltWaterComposition.Year     = Convert.ToInt32(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 2].Value);
                            ionsaltWaterComposition.LakePart = (LakePart)Convert.ToInt32(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 3].Value);
                            ionsaltWaterComposition.CaMgEq   = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 4].Value == null ?
                                                               (decimal?)null :
                                                               Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 4].Value);
                            ionsaltWaterComposition.MgMgEq = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 5].Value == null ?
                                                             (decimal?)null :
                                                             Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 5].Value);
                            ionsaltWaterComposition.NaKMgEq = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 6].Value == null ?
                                                              (decimal?)null :
                                                              Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 6].Value);
                            ionsaltWaterComposition.ClMgEq = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 7].Value == null ?
                                                             (decimal?)null :
                                                             Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 7].Value);
                            ionsaltWaterComposition.HCOMgEq = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 8].Value == null ?
                                                              (decimal?)null :
                                                              Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 8].Value);
                            ionsaltWaterComposition.SOMgEq = package.Workbook.Worksheets.FirstOrDefault().Cells[i, 9].Value == null ?
                                                             (decimal?)null :
                                                             Convert.ToDecimal(package.Workbook.Worksheets.FirstOrDefault().Cells[i, 9].Value);
                        }
                        catch (Exception e)
                        {
                            ViewBag.Error = $"{_sharedLocalizer["Row"]} {i.ToString()}: " + e.Message + (e.InnerException == null ? "" : ": " + e.InnerException.Message);
                            break;
                        }

                        ionsaltWaterCompositions.Add(ionsaltWaterComposition);
                        _context.Add(ionsaltWaterCompositions.LastOrDefault());
                    }
                    if (string.IsNullOrEmpty(ViewBag.Error))
                    {
                        _context.SaveChanges();
                        ViewBag.Report = $"{_sharedLocalizer["UploadedCount"]}: {ionsaltWaterCompositions.Count()}";
                    }
                }
                foreach (FileInfo filed in di.GetFiles())
                {
                    try
                    {
                        filed.Delete();
                    }
                    catch
                    {
                    }
                }
            }
            catch (Exception e)
            {
                if (File != null)
                {
                    ViewBag.Error = e.Message + (e.InnerException == null ? "" : ": " + e.InnerException.Message);
                }
            }
            return(View());
        }