Esempio n. 1
0
        public static async Task <ErrorModel> AddVintage(long wineId, string year)
        {
            var isNumber = int.TryParse(year, out int yearInt);

            if (!isNumber)
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Du får skriva bara siffror", Object = null
                }
            }
            ;

            var url     = Links.baseLink + Links.vintages;
            var payload = new AddVintageModel
            {
                WineId = wineId,
                Year   = yearInt
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Årgangen har inte lagts till", Object = new VintageResponse {
                               VintageId = 0, WineId = 0, Year = "0"
                           }
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <VintageResponse>(responseBody);

                if (responseBodyJson.WineId == 0 || responseBodyJson.VintageId == 0)
                {
                    return new ErrorModel {
                               ErrorCode = false, Message = "Årgangen har inte lagts till", Object = new VintageResponse {
                                   VintageId = 0, WineId = 0, Year = "0"
                               }
                    }
                }
                ;

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 2
0
        public static async Task <List <VintageResponse> > GetVintages(long wineId)
        {
            var url   = Links.baseLink + Links.vintages + "?wineid=" + wineId;
            var token = await GetToken();

            var responseErrorModel = await RestVerbs.Get(url, token);

            if (responseErrorModel.ErrorCode)
            {
                var responseBodyJson = JsonConvert.DeserializeObject <List <VintageResponse> >((string)responseErrorModel.Object);
                return(responseBodyJson);
            }
            else if (!string.IsNullOrEmpty(responseErrorModel.Message))
            {
                MessageBox.Show(responseErrorModel.Message, "Fel");
            }

            return(null);
        }
Esempio n. 3
0
        public static async Task <List <ShelfResponse> > GetUsersShelves()
        {
            var url   = Links.baseLink + Links.shelves;
            var token = await GetToken();

            var responseErrorModel = await RestVerbs.Get(url, token);

            if (responseErrorModel.ErrorCode)
            {
                var responseBodyJson = JsonConvert.DeserializeObject <List <ShelfResponse> >((string)responseErrorModel.Object);
                return(responseBodyJson);
            }
            else if (!string.IsNullOrEmpty(responseErrorModel.Message))
            {
                MessageBox.Show(responseErrorModel.Message, "Fel");
            }

            return(null);
        }
Esempio n. 4
0
        public static async Task <ErrorModel> UpdateInventory(long inventoryId, long shelfId, int newAmount = -1)
        {
            var url     = Links.baseLink + Links.inventories;
            var payload = new UpdateInventoryModel
            {
                InventoryId = inventoryId,
                ShelfId     = shelfId
            };

            if (newAmount != -1)
            {
                payload.Amount = newAmount;
            }

            var token = await GetToken();

            var responseBody = await RestVerbs.Put(url, payload, token);

            if (string.IsNullOrEmpty(responseBody) && newAmount == 0)
            {
                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = new InventoryResponse {
                        InventoryId = 0, ShelfId = 0, Amount = 0
                    }
                });
            }
            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <InventoryResponse>(responseBody);
                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 5
0
        public static async Task <ErrorModel> AddInventory(long vintageId, long shelfId, int amount)
        {
            var url     = Links.baseLink + Links.inventories;
            var payload = new AddInventoryModel
            {
                VintageId = vintageId,
                ShelfId   = shelfId,
                Amount    = amount
            };

            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Inventeringen har inte lagts till", Object = new InventoryResponse {
                               InventoryId = 0, ShelfId = 0, Amount = 0
                           }
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <InventoryResponse>(responseBody);

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 6
0
        public static async Task <ErrorModel> GetMetadata()
        {
            MetaDataResponse responseBodyJson = new MetaDataResponse();

            var url   = Links.baseLink + Links.metadata;
            var token = await GetToken();

            var responseErrorModel = await RestVerbs.Get(url, token);

            if (responseErrorModel.ErrorCode)
            {
                responseBodyJson = JsonConvert.DeserializeObject <MetaDataResponse>((string)responseErrorModel.Object);
            }
            else
            {
                return(responseErrorModel);
            }

            return(new ErrorModel {
                ErrorCode = true, Message = null, Object = responseBodyJson
            });
        }
Esempio n. 7
0
        public static async Task <ErrorModel> UpdateWine(long wineId, string producer, double alcohol, long districtId, Image image)
        {
            var url     = Links.baseLink + Links.wines;
            var payload = new UpdateWine
            {
                WineId     = wineId,
                Producer   = producer,
                Alcohol    = alcohol,
                DistrictId = districtId,
                Image      = imageToByteArray(image)
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Put(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Vinet har inte ändrats!", Object = null
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <WineResponse>(responseBody);

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 8
0
        public static async Task <ErrorModel> AddDistrict(string districtName, long regionId)
        {
            var url     = Links.baseLink + Links.metadata + '/' + Links.districts;
            var payload = new AddDistrictModel
            {
                DistrictName = districtName,
                RegionId     = regionId
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Distrikten har inte lagts till", Object = new DistrictResponse {
                               DistrictId = 0, DistrictName = "", RegionId = 0
                           }
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <DistrictResponse>(responseBody);

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 9
0
        public static async Task <ErrorModel> AddCountry(string countryName)
        {
            var url     = Links.baseLink + Links.metadata + '/' + Links.countries;
            var payload = new AddCountryModel
            {
                CountryName = countryName
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Landet har inte lagts till", Object = new CountryResponse {
                               CountryId = 0, CountryName = ""
                           }
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <CountryResponse>(responseBody);

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 10
0
        public static async Task <ErrorModel> AddShelf(string shelfName)
        {
            var url     = Links.baseLink + Links.shelves;
            var payload = new AddShelfModel
            {
                ShelfName = shelfName
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Hyllan har inte lagts till", Object = new ShelfResponse {
                               ShelfId = 0, Name = null
                           }
                }
            }
            ;

            try
            {
                var responseBodyJson = JsonConvert.DeserializeObject <ShelfResponse>(responseBody);

                return(new ErrorModel {
                    ErrorCode = true, Message = null, Object = responseBodyJson
                });
            }
            catch (Exception error)
            {
                return(new ErrorModel {
                    ErrorCode = false, Message = error.Message, Object = null
                });
            }
        }
Esempio n. 11
0
        private static async Task <ErrorModel> GetWineList(string url, string startsWith, long countryId, long regionId)
        {
            var shelves = await GetUsersShelves();

            var metadetaErrorModel = await Infrastructure.GetMetadata();

            MetaDataResponse metadata = (MetaDataResponse)metadetaErrorModel.Object;

            if (!string.IsNullOrEmpty(startsWith))
            {
                url = url.Replace("startswith=", "startswith=" + startsWith);
            }
            if (countryId > 0)
            {
                url = url.Replace("countryid=-1", "countryid=" + countryId);
            }
            if (regionId > 0)
            {
                url = url.Replace("regionid=-1", "regionid=" + regionId);
            }

            ICollection <WineListResponse> responseBodyJson = new List <WineListResponse>();
            var token = await GetToken();

            var responseErrorModel = await RestVerbs.Get(url, token);

            if (responseErrorModel.ErrorCode)
            {
                responseBodyJson = JsonConvert.DeserializeObject <ICollection <WineListResponse> >((string)responseErrorModel.Object);
            }
            else
            {
                return(responseErrorModel);
            }



            var wineTickets = new List <WineTicket>();

            responseBodyJson = responseBodyJson.Take(10).ToList();
            foreach (var wine in responseBodyJson)
            {
                //List<VintageResponse> vintages = await GetVintages(wine.WineId);

                List <InventoryTicket> inves = new List <InventoryTicket>();
                if (wine.Vintages != null)
                {
                    foreach (var inv in wine.Vintages)
                    {
                        inves.Add(new InventoryTicket(shelves)
                        {
                            Year          = inv != null ? inv.Year : "",
                            CurrentAmount = inv != null ? inv.Amount.ToString() : "",
                            Shelf         = inv.ShelfName,
                            //Grade = (inv.Grade != null && inv.Grade.Grade >= 1 && inv.Grade.Grade <= 5) ? inv.Grade.Grade.ToString() : "-",
                            Grade       = "--",
                            InventoryId = inv.InventoryId,
                            ShelfId     = inv.ShelfId,
                        });
                    }
                }
                else
                {
                    inves.Add(new InventoryTicket(shelves)
                    {
                        CurrentAmount = "-", Year = "-", Grade = "--", Shelf = "-"
                    });
                }

                //string origin = wine.Country.CountryName;
                //// if (wine.Region.RegionName != "Okänt region")
                //origin += " >> \r\n" + wine.Region.RegionName;
                ////  if (wine.District.DistrictName != "Okänt distrikt")
                //origin += " >> \r\n" + wine.District.DistrictName;

                string grapes = "";
                foreach (var grape in wine.WineGrapes)
                {
                    grapes += grape.GrapeName + ((grape.Percent > 0) ? " " + grape.Percent + "%" + "\r\n" : "\r\n");
                }
                wineTickets.Add(new WineTicket(metadata)
                {
                    WineId   = wine.WineId,
                    WineName = wine.WineName,
                    Alcohol  = wine.Alcohol.ToString() + '%',
                    Bottles  = inves,
                    Country  = wine.Country.CountryName,
                    Region   = wine.Region.RegionName,
                    District = wine.District.DistrictName,
                    Producer = wine.Producer,
                    Grapes   = grapes,
                    WinePic  = wine.ImageThumbnail
                });
            }
            return(new ErrorModel {
                ErrorCode = true, Message = null, Object = wineTickets
            });
        }
Esempio n. 12
0
        public static async Task <ErrorModel> AddWine(string winName, string producer, long districtId, string alcohol, List <WineGrape> AddedGrapes, Image image)
        {
            double alcoholDouble = 0;

            if (!string.IsNullOrEmpty(alcohol))
            {
                var isNumber = double.TryParse(alcohol, out alcoholDouble);
                if (!isNumber)
                {
                    return new ErrorModel {
                               ErrorCode = false, Message = "alkoholhalt måste vara en siffra!", Object = null
                    }
                }
                ;
                if (alcoholDouble < 0 || alcoholDouble > 50)
                {
                    return new ErrorModel {
                               ErrorCode = false, Message = "alkoholhalt värde är inte rimligt!", Object = null
                    }
                }
                ;
            }
            var url = Links.baseLink + Links.wines;

            for (int i = 0; i < AddedGrapes.Count(); i++)
            {
                AddedGrapes[i].Grape = null;
            }
            //var imageToByteArray(image)
            var payload = new AddWine
            {
                Name       = winName,
                DistrictId = districtId,
                Producer   = producer,
                Alcohol    = alcoholDouble,
                WineGrapes = AddedGrapes,
                Image      = imageToByteArray(image)
            };
            var token = await GetToken();

            var responseBody = await RestVerbs.Post(url, payload, token);

            if (string.IsNullOrEmpty(responseBody))
            {
                return new ErrorModel {
                           ErrorCode = false, Message = "Vinet har inte lagts till", Object = new VintageResponse {
                               VintageId = 0, WineId = 0, Year = "0"
                           }
                }
            }
            ;

            return(new ErrorModel {
                ErrorCode = true, Message = null, Object = null
            });

            //try
            //{
            //    var responseBodyJson = JsonConvert.DeserializeObject<VintageResponse>(responseBody);
            //    if (responseBodyJson.WineId == 0 || responseBodyJson.VintageId == 0)
            //        return new ErrorModel { ErrorCode = false, Message = "Årgangen har inte lagts till", Object = new VintageResponse { VintageId = 0, WineId = 0, Year = "0" } };

            //    return new ErrorModel { ErrorCode = true, Message = null, Object = responseBodyJson };
            //}
            //catch (Exception error)
            //{
            //    return new ErrorModel { ErrorCode = false, Message = error.Message, Object = null };
            //}
        }