예제 #1
0
        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();
            }
        }
예제 #2
0
        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));
            }
        }
예제 #6
0
 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();
            }
        }