예제 #1
0
        public IHttpActionResult Update(WareHouse wareHouse)
        {
            WareHouseResponse response = new WareHouseResponse();

            try
            {
                WareHouse wareHouseSaved = wareHouseBL.UpdateWareHouse(wareHouse);
                response.WareHouse = wareHouseSaved;
                response.Success   = true;
            }
            catch (WareHouseException ex)
            {
                response.ErrorCode    = ex.Error;
                response.ErrorMessage = "Error. " + ex.Error.ToString();
                response.WareHouse    = null;
                response.Success      = false;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = "Error. " + ex.Message;
                response.WareHouse    = null;
                response.Success      = false;
            }
            return(Ok(response));
        }
예제 #2
0
        public void TestInsertUpdateErrors()
        {
            Token token = TokenHelper.GetToken(baseUrl, "Melvin3", "MelvinPass3");
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            //Test insert
            WareHouse wareHouse  = new WareHouse();
            string    jsonTicket = javaScriptSerializer.Serialize(wareHouse);
            //Post add ticket
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            //Test insert
            HttpResponseMessage response = client.PostAsJsonAsync(insertAction, wareHouse).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            WareHouseResponse wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;

            Assert.IsFalse(wareHouseResponse.Success);
            Assert.IsTrue(wareHouseResponse.ErrorCode.HasFlag(WareHouseError.InvalidName));
            Assert.IsTrue(wareHouseResponse.ErrorCode.HasFlag(WareHouseError.InvalidAddress));



            //Test update
            response = client.PostAsJsonAsync(updateAction, wareHouse).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;
            Assert.IsFalse(wareHouseResponse.Success);
            Assert.IsTrue(wareHouseResponse.ErrorCode.HasFlag(WareHouseError.InvalidName));
            Assert.IsTrue(wareHouseResponse.ErrorCode.HasFlag(WareHouseError.InvalidAddress));
        }
예제 #3
0
        public void TestDeleteErrors()
        {
            Token token = TokenHelper.GetToken(baseUrl, "Melvin3", "MelvinPass3");
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            HttpClient           client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            //Test delete
            HttpResponseMessage response = client.PostAsJsonAsync(deleteAction, new IdModel(0)).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            WareHouseResponse wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;

            Assert.IsFalse(wareHouseResponse.Success);
            Assert.IsTrue(wareHouseResponse.ErrorCode.HasFlag(WareHouseError.InvalidId));
        }
예제 #4
0
        public void SaveWareHouse()
        {
            bool       reLoadList = false;
            HttpClient client     = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/bson"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token.access_token);
            string action = string.Empty;

            if (rancherView.CurrentWareHouse.Id == 0)
            {
                //insert
                action     = insertAction;
                reLoadList = true;
            }
            else
            {
                action = updateAction;
            }
            //update
            MediaTypeFormatter  bsonFormatter = new BsonMediaTypeFormatter();
            HttpResponseMessage response      = client.PostAsync(action, rancherView.CurrentWareHouse, bsonFormatter).Result;

            response.EnsureSuccessStatusCode();
            MediaTypeFormatter[] formatters      = new MediaTypeFormatter[] { bsonFormatter };
            WareHouseResponse    rancherResponse = response.Content.ReadAsAsync <WareHouseResponse>(formatters).Result;

            if (rancherResponse.Success)
            {
                if (rancherResponse.WareHouse != null)
                {
                    if (reLoadList)
                    {
                        LoadWareHouses();
                        rancherView.SelectedId = rancherResponse.WareHouse.Id;
                    }
                }
            }
            else
            {
                throw new WareHouseException(rancherResponse.ErrorCode, rancherResponse.ErrorMessage);
            }
        }
예제 #5
0
        public void DeleteWareHouse()
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Token.access_token);
            HttpResponseMessage response = client.PostAsJsonAsync(deleteAction, new IdModel(rancherView.SelectedId)).Result;

            if (response.IsSuccessStatusCode)
            {
                WareHouseResponse rancherResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;
                if (rancherResponse.Success)
                {
                    //Deleted!
                    LoadWareHouses();
                    PropertyCopier.CopyProperties(new WareHouse(), rancherView.CurrentWareHouse);
                    rancherView.CurrentWareHouse.RaiseUpdateProperties();
                    rancherView.SelectedId = -1;
                }
            }
        }
예제 #6
0
        public IHttpActionResult Delete(IdModel id)
        {
            WareHouseResponse response = new WareHouseResponse();

            try
            {
                bool success = wareHouseBL.DeleteWareHouse(id.Id);
                response.Success = success;
            }
            catch (WareHouseException ex)
            {
                response.ErrorCode    = ex.Error;
                response.ErrorMessage = "Error. " + ex.Error.ToString();
                response.WareHouse    = null;
                response.Success      = false;
            }
            catch (Exception ex)
            {
                response.ErrorMessage = "Error. " + ex.Message;
                response.WareHouse    = null;
                response.Success      = false;
            }
            return(Ok(response));
        }
예제 #7
0
        public void TestInsertUpdateAndGetWareHouse()
        {
            //Get token
            Token token = TokenHelper.GetToken(baseUrl, "Melvin3", "MelvinPass3");
            JavaScriptSerializer javaScriptSerializer = new JavaScriptSerializer();
            //Test insert
            WareHouse wareHouse  = WareHouseHelper.CreateDummyWareHouse();
            string    jsonTicket = javaScriptSerializer.Serialize(wareHouse);
            //Post add ticket
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(baseUrl);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            HttpResponseMessage response = client.PostAsJsonAsync(insertAction, wareHouse).Result;

            Assert.IsTrue(response.IsSuccessStatusCode);
            WareHouseResponse wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;

            Assert.IsTrue(wareHouseResponse.Success);
            Assert.IsTrue(wareHouseResponse != null);
            Assert.IsTrue(wareHouseResponse.WareHouse.Id > 0);
            //get by id
            string getByIdUrl = string.Format("{0}?id={1}", getByIdAction, wareHouseResponse.WareHouse.Id.ToString());

            response = client.GetAsync(getByIdUrl).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            GetWareHouseResponse getWareHouseResponse = response.Content.ReadAsAsync <GetWareHouseResponse>().Result;

            Assert.IsTrue(getWareHouseResponse.Success);
            Assert.IsTrue(getWareHouseResponse.WareHouses.Count == 1);
            Assert.IsTrue(getWareHouseResponse.WareHouses.ElementAt(0).Id == wareHouseResponse.WareHouse.Id);
            //get all
            response = client.GetAsync(getAllAction).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getWareHouseResponse = response.Content.ReadAsAsync <GetWareHouseResponse>().Result;
            Assert.IsTrue(getWareHouseResponse.Success);
            WareHouse wareHouseFound = (from produc in getWareHouseResponse.WareHouses where produc.Id == wareHouseResponse.WareHouse.Id select produc).FirstOrDefault();

            Assert.IsTrue(wareHouseFound != null);
            //test update
            wareHouse.Id      = wareHouseResponse.WareHouse.Id;
            wareHouse.Address = "UpdatedAddress";
            wareHouse.Name    = "UpdatedName";
            response          = client.PostAsJsonAsync(updateAction, wareHouse).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;
            Assert.IsTrue(wareHouseResponse.Success);
            //Get ticket again and check it was updated
            response = client.GetAsync(getByIdUrl).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getWareHouseResponse = response.Content.ReadAsAsync <GetWareHouseResponse>().Result;
            Assert.IsTrue(getWareHouseResponse.Success);
            Assert.IsTrue(getWareHouseResponse.WareHouses.Count == 1);
            Assert.IsTrue(getWareHouseResponse.WareHouses.ElementAt(0).Address == "UpdatedAddress");
            Assert.IsTrue(getWareHouseResponse.WareHouses.ElementAt(0).Name == "UpdatedName");
            //test delete
            response = client.PostAsJsonAsync(deleteAction, new IdModel(wareHouseResponse.WareHouse.Id)).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            wareHouseResponse = response.Content.ReadAsAsync <WareHouseResponse>().Result;
            Assert.IsTrue(wareHouseResponse.Success);
            //Get ticket again and check it is not found
            response = client.GetAsync(getByIdUrl).Result;
            Assert.IsTrue(response.IsSuccessStatusCode);
            getWareHouseResponse = response.Content.ReadAsAsync <GetWareHouseResponse>().Result;
            Assert.IsTrue(getWareHouseResponse.Success);
            Assert.IsTrue(getWareHouseResponse.WareHouses.Count == 0);
        }