public async Task <IActionResult> CreateUpdate(int?id = null) { ViewBag.Cities = _commonUtils.PopulateCitiesList(); var model = new PharmacyCreateUpdateViewModel { Id = id, }; if (id != null) { var pharmacy = await _pharmacyRepository.GetByIdAsync(id.Value); if (pharmacy == null) { throw new Exception("Pharmacy Not Found"); } model.Name = pharmacy.Name; model.Name_Ku = pharmacy.Name_Ku; model.Name_Ar = pharmacy.Name_Ar; model.Address = pharmacy.Address; model.Address_Ku = pharmacy.Address_Ku; model.Address_Ar = pharmacy.Address_Ar; model.Description = pharmacy.Description; model.Description_Ku = pharmacy.Description_Ku; model.Description_Ar = pharmacy.Description_Ar; model.GoogleMap_lat = pharmacy.Location != null && pharmacy.Location?.Y > 0 ? pharmacy.Location?.Y.ToString() : ""; model.GoogleMap_lng = pharmacy.Location != null && pharmacy.Location?.X > 0 ? pharmacy.Location?.X.ToString() : ""; model.CityId = pharmacy.CityId; } return(PartialView("CreateUpdate", model)); }
public async Task <IActionResult> CreateUpdate(PharmacyCreateUpdateViewModel model) { try { if (model.Id != null) { var pharmacy = await _pharmacyRepository.GetByIdAsync(model.Id.Value); if (pharmacy == null) { throw new Exception("Pharmacy Not Found"); } pharmacy.Name = model.Name; pharmacy.Name_Ku = model.Name_Ku; pharmacy.Name_Ar = model.Name_Ar; pharmacy.Address = model.Address; pharmacy.Address_Ku = model.Address_Ku; pharmacy.Address_Ar = model.Address_Ar; pharmacy.Description = model.Description; pharmacy.Description_Ku = model.Description_Ku; pharmacy.Description_Ar = model.Description_Ar; pharmacy.CityId = model.CityId; pharmacy.UpdatedAt = DateTime.Now; double.TryParse(model.GoogleMap_lng, out double x_longitude); double.TryParse(model.GoogleMap_lat, out double y_latitude); pharmacy.Location = new NetTopologySuite.Geometries.Point(x_longitude, y_latitude) { SRID = 4326 }; _pharmacyRepository.UpdatePharmacy(pharmacy); return(Json(new { success = true })); } else { double.TryParse(model.GoogleMap_lng, out double x_longitude); double.TryParse(model.GoogleMap_lat, out double y_latitude); var pharmacy = new Pharmacy { Name = model.Name, Name_Ku = model.Name_Ku, Name_Ar = model.Name_Ar, Address = model.Address, Address_Ku = model.Address_Ku, Address_Ar = model.Address_Ar, Description = model.Description, Description_Ku = model.Description_Ku, Description_Ar = model.Description_Ar, CityId = model.CityId, Location = new NetTopologySuite.Geometries.Point(x_longitude, y_latitude) { SRID = 4326 // Set the SRID (spatial reference system id) to 4326, which is the spatial reference system used by Google maps (WGS84) } }; await _pharmacyRepository.InsertPharmacyAsync(pharmacy); return(Json(new { success = true })); } } catch (Exception ex) { throw ex; } }