Example #1
0
        private void SaveAttribute(EAV.Model.IModelAttribute attribute)
        {
            HttpResponseMessage response;

            if (attribute.ObjectState == EAV.Model.ObjectState.New)
            {
                response = client.PostAsJsonAsync <EAV.Store.IStoreAttribute>(String.Format("api/metadata/containers/{0}/attributes", attribute.ContainerID.GetValueOrDefault()), attribute).Result;
                if (response.IsSuccessStatusCode)
                {
                    EAVModelLibrary.ModelAttribute newAttribute = response.Content.ReadAsAsync <EAVModelLibrary.ModelAttribute>().Result;

                    attribute.AttributeID = newAttribute.AttributeID;

                    if (!attribute.VariableUnits.GetValueOrDefault(true))
                    {
                        SaveAttributeUnits(attribute.AttributeID.Value, attribute.Units);
                    }

                    attribute.MarkUnmodified();
                }
                else
                {
                    throw (new ApplicationException("Attempt to create attribute failed."));
                }
            }
            else if (attribute.ObjectState == EAV.Model.ObjectState.Modified)
            {
                response = client.PatchAsJsonAsync <EAV.Store.IStoreAttribute>("api/metadata/attributes", attribute).Result;
                if (response.IsSuccessStatusCode)
                {
                    if (!attribute.VariableUnits.GetValueOrDefault(true))
                    {
                        SaveAttributeUnits(attribute.AttributeID.Value, attribute.Units);
                    }

                    attribute.MarkUnmodified();
                }
                else
                {
                    throw (new ApplicationException("Attempt to update attribute failed."));
                }
            }

            if (attribute.ObjectState == EAV.Model.ObjectState.Deleted)
            {
                response = client.DeleteAsync(String.Format("api/metadata/attributes/{0}", attribute.AttributeID.GetValueOrDefault())).Result;
                if (response.IsSuccessStatusCode)
                {
                }
                else
                {
                    throw (new ApplicationException("Attempt to delete attribute failed."));
                }
            }
        }
Example #2
0
        private void LoadAttributeUnits(EAV.Model.IModelAttribute attribute)
        {
            bool attributeWasUnmodified = attribute.ObjectState == EAV.Model.ObjectState.Unmodified;

            HttpResponseMessage response = client.GetAsync(String.Format("api/metadata/attributes/{0}/units", attribute.AttributeID)).Result;

            if (response.IsSuccessStatusCode)
            {
                attribute.Units.Clear();

                var units = response.Content.ReadAsAsync <IEnumerable <EAVModelLibrary.ModelUnit> >().Result;
                foreach (EAVModelLibrary.ModelUnit unit in units)
                {
                    unit.MarkUnmodified();

                    attribute.Units.Add(unit);

                    unit.MarkUnmodified();
                }

                if (attributeWasUnmodified)
                {
                    attribute.MarkUnmodified();
                }
            }
            else
            {
                throw (new ApplicationException("Attempt to get attribute units failed."));
            }
        }