private async void DeletePhoto(object obj) { var confirm = await Main.DisplayAlert("Внимание!", "Удалить фотографию?", "Да", "Нет"); if (confirm) { string path = (string)obj; File.Delete(path); HistoryViewModel tempHVM = PurchaseList.FirstOrDefault(p => p.Check.Contains(path)); var fullPath = tempHVM.Check; var pathIndex = fullPath.IndexOf(path); var newFullPath = fullPath.Remove(pathIndex, path.Length + 1); ListOfPurchase tempList = new ListOfPurchase { Id = tempHVM.Id, Date = tempHVM.Date, Check = newFullPath, PurchasesList = tempHVM.PurchasesList }; App.Database.SaveHistoryItem(tempList); Main.DisplayAlert("Внимание!", "Фотографии были удалены.", "Ок"); Back(); } }
private async void DeletePhotos(object obj) { var confirm = await Main.DisplayAlert("Внимание!", "Удалить фотографии прикрепленные к данному сохранению?", "Да", "Нет"); if (confirm) { var fullPath = obj as string; if (fullPath == null) { Main.DisplayAlert("Внимание!", "Нет фотографий.", "Ок"); return; } Main.DeletePhotosHelper(fullPath); HistoryViewModel tempHVM = PurchaseList.FirstOrDefault(p => p.Check == fullPath); ListOfPurchase tempList = new ListOfPurchase { Id = tempHVM.Id, Date = tempHVM.Date, Check = "", PurchasesList = tempHVM.PurchasesList }; App.Database.SaveHistoryItem(tempList); Main.DisplayAlert("Внимание!", "Фотографии были удалены.", "Ок"); Back(); } }
ListOfPurchase DeserializeHistory(SerializedHistoryItem ser) { var deser = new ListOfPurchase { Id = ser.Id, Date = ser.Date, PurchasesList = (List <Purchase>)(ByteArrayToObject(ser.PurchasesList)), Check = ser.Check, ShopName = ser.ShopName }; return(deser); }
SerializedHistoryItem SerializeHistory(ListOfPurchase deser) { var ser = new SerializedHistoryItem { Date = deser.Date, PurchasesList = ObjectToByteArray(deser.PurchasesList), Check = deser.Check, Id = deser.Id, ShopName = deser.ShopName }; return(ser); }
public int SaveHistoryItem(ListOfPurchase item) { var temp = SerializeHistory(item); if (item.Id != 0) { db.Update(temp); return(temp.Id); } else { return(db.Insert(temp)); } }
public HistoryViewModel() { ListOfPurchase = new ListOfPurchase(); }
private async void CompletePurchase() { var confirm = await Main.DisplayAlert("Внимание!", "Завершить покупку?", "Да", "Нет"); if (confirm) { if (App.CurrentPurchases.Count < 1) { if (GetCurrentPhotoString() == null) { Main.DisplayAlert("Внимание!", "Нет ни товаров, ни фотографий чеков для сохранения. Сохранение невозможно.", "Ок"); return; } bool onlyPhoto = await Main.DisplayAlert("Внимание!", "В списке нет ни одного товара. Сохранить только фото?", "Да", "Нет"); if (!onlyPhoto) { return; } } string notAllCompleted = "foo"; if (App.CurrentPurchases.Any(p => !p.Completed)) { notAllCompleted = "Отмена";//значение, на случай нажатия бэк-кнопки при диалоговом окошке notAllCompleted = await Main.DisplayActionSheet("Не все покупки завершены. Какие из них сохранить?", "Отмена", null, "Сохранить только завершенные", "Сохранить все", "Сохранить завершенные, а оставшиеся перенести на следующую покупку."); } if (notAllCompleted == null || notAllCompleted == "Отмена") { return; } while (App.HistoryOfPurchase.Count >= App.HistoryAbleToSaveCount) { var haveToDeleteItem = (App.HistoryOfPurchase.FirstOrDefault(p => p.Date == App.HistoryOfPurchase.Min(h => h.Date))); Main.DeletePhotosHelper(haveToDeleteItem.Check); App.Database.DeleteHistoryItem(haveToDeleteItem.Id); Main.history.Back(); } Plugin.DialogKit.CrossDiaglogKit.GlobalSettings.DialogAffirmative = "Ок"; Plugin.DialogKit.CrossDiaglogKit.GlobalSettings.DialogNegative = "Не указывать"; var shopName = await Plugin.DialogKit.CrossDiaglogKit.Current.GetInputTextAsync("Внимание!", "Введите название магазина:");//TODO:при бэк кнопке!! active page back?? if (string.IsNullOrEmpty(shopName)) { shopName = "не указано"; } var currentList = new ListOfPurchase { PurchasesList = new List <Purchase>(), Date = DateTime.Now, Check = GetCurrentPhotoString(), ShopName = shopName }; App.Current.Properties["CurrentPhotos"] = null; if (notAllCompleted == "Сохранить завершенные, а оставшиеся перенести на следующую покупку.") { if (!App.CurrentPurchases.Any(p => p.Completed) && GetCurrentPhotoString() == null) { await Main.DisplayAlert("Внимание!", "Нет ни товаров, ни фотографий чеков для сохранения. Сохранение невозможно.", "Ок"); return; } foreach (var item in CompletedPurchases) { var temp = new Purchase { Name = item.Name, Count = item.Count, Units = item.Units }; currentList.PurchasesList.Add(temp); } App.CurrentPurchases.RemoveAll(p => p.Completed); } else { if (notAllCompleted == "Сохранить все") { if (App.CurrentPurchases.Count < 1 && GetCurrentPhotoString() == null) { await Main.DisplayAlert("Внимание!", "Нет ни товаров, ни фотографий чеков для сохранения. Сохранение невозможно.", "Ок"); return; } foreach (var item in App.CurrentPurchases) { var temp = new Purchase { Name = item.Name, Count = item.Count, Units = item.Units }; currentList.PurchasesList.Add(temp); } } else { if (!App.CurrentPurchases.Any(p => p.Completed) && GetCurrentPhotoString() == null) { await Main.DisplayAlert("Внимание!", "Нет ни товаров, ни фотографий чеков для сохранения. Сохранение невозможно.", "Ок"); return; } foreach (var item in App.CurrentPurchases.Where(p => p.Completed)) { var temp = new Purchase { Name = item.Name, Count = item.Count, Units = item.Units }; currentList.PurchasesList.Add(temp); } } App.CurrentPurchases.Clear(); } App.Database.SaveHistoryItem(currentList); Main.history.Back(); Back(); } }