public async Task <IActionResult> StoreData([Bind("Id,CompanyName,Description,EMail,Website,Activated,CreatedAt,PostCode,City,Address,Country,FederalState,Telephonenumber,Password")] TableStore tableStore, IFormFile logoFile) { var storeId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (ModelState.IsValid) { //update try { var tbStore = await _context.TblStores.FirstOrDefaultAsync(x => x.Id == tableStore.Id); var logo = CreateImage(logoFile, EnumImageType.Logo); if (!(logo is null)) { var storeImages = _context.TblStores.Where(s => s.Id.ToString() == storeId).Select(s => s.Images).ToArray(); logo.Store = tbStore; if (storeImages[0].Any()) { for (int i = 0; i < storeImages[0].Count(); i++) { if (storeImages[0][i].ImageType == EnumImageType.Logo) { _context.TblImages.Remove(storeImages[0][i]); break; } } } _context.TblImages.Add(logo); } if (tbStore == null) { return(NotFound()); } if (!String.IsNullOrEmpty(tableStore.Telephonenumber)) { string outPhoneNumber; var a = ValidationHelper.ProoveValidPhoneNumber(tableStore.Telephonenumber, out outPhoneNumber); //TODO: Meldung wenn nicht passt tableStore.Telephonenumber = outPhoneNumber; } if (!String.IsNullOrEmpty(tableStore.Website)) { if (!tableStore.Website.StartsWith("http")) { tableStore.Website = $"http://{tableStore.Website}"; } } tbStore.CompanyName = tableStore.CompanyName; tbStore.Description = tableStore.Description; tbStore.EMail = tableStore.EMail; tbStore.Country = tableStore.Country; tbStore.FederalState = tableStore.FederalState; tbStore.PostCode = tableStore.PostCode; tbStore.City = tableStore.City; tbStore.Address = tableStore.Address; tbStore.Website = tableStore.Website; tbStore.Telephonenumber = tableStore.Telephonenumber; var sec = await _context.TblLocations.FirstOrDefaultAsync(a => a.StoreId == tbStore.Id); if (sec == null) { sec = new TableLocation(); sec.StoreId = tbStore.Id; _context.TblLocations.Add(sec); } sec.EMail = tbStore.EMail; sec.Address = tbStore.Address; sec.City = tbStore.City; sec.Country = tbStore.Country; sec.PostCode = tbStore.PostCode; sec.Name = tbStore.CompanyName; sec.Telephonenumber = tbStore.Telephonenumber; try { var res = GeocodeService.ConvertToGPSCoordinates(tableStore.PostCode, tableStore.City, tableStore.Address); tbStore.Longitude = res.Geometry.Location.Longitude; tbStore.Latitude = res.Geometry.Location.Latitude; } catch (Exception e) { } sec.Latitude = tbStore.Latitude; sec.Longitude = tbStore.Longitude; if (!string.IsNullOrWhiteSpace(tableStore.Password)) { tbStore.Password = PasswordHelper.CumputeHash(tableStore.Password); } await _context.SaveChangesAsync(); TempData.Add("message", "Daten erfolgreich gespeichert"); return(RedirectToAction(nameof(StoreData))); } catch (DbUpdateConcurrencyException) { ViewData.Add("message", "Daten konnten nicht gespeichert werden"); return(View(tableStore)); //if (!TableStoreExists(store.Id)) //{ // return NotFound(); //} //else //{ // throw; //} } } return(View(tableStore)); }