public SaveResult Save() { try { int count = 1; Trip.Steps.Add(new Step(AddressStart, TypeStep.Start, count++)); if (Steps != null) { foreach (var item in Steps) { Trip.Steps.Add(new Step(item, TypeStep.Step, count++)); } } Trip.Steps.Add(new Step(AddressEnd, TypeStep.End, count++)); Trip.Driver = SessionHelper.CurrentUser; Trip.DateStart = Date.AddHours(Hours.Hour).AddMinutes(Hours.Minute); Trip.RoundTrip = RoundTrip == "on"; Trip.Duration = new TimeSpan(0, 0, 0, Duration); var res = Trip.Save(); var json = GoogleApi.GetGoogleDirection(AddressStart, AddressEnd, Steps); Container.Manager.VoyageGuidageOperation.Add(Container.Manager.VoyageOperation.GetById(res.Id), json); Container.Manager.Save(); return(new SaveResult(true, Trip.Id)); } catch (Exception ex) { Logger.Error(ex, "TripViewModel.Save()"); return(new SaveResult(ex)); } }