Пример #1
0
        public IPropertyTag GetPropertyTagById(int id)
        {
            FVCP.Persistence.EF.PropertyTag dbItem = null;
            using (var db = new PropertyEntities())
            {
                dbItem = db.PropertyTags
                         .FirstOrDefault(x => x.Id == id);
            }

            PropertyTagDTO     dto    = PropertyTagRepository.MapFieldValues(dbItem);
            PropertyTagFactory myFact = new PropertyTagFactory();
            IPropertyTag       retVal = myFact.Create(dto);

            return(retVal);
        }
Пример #2
0
        public static PropertyTagDTO MapFieldValues(EF.PropertyTag dbItem)
        {
            if (dbItem == null)
            {
                return(null);
            }

            PropertyTagDTO retVal = new PropertyTagDTO()
            {
                Id   = dbItem.Id,
                Name = dbItem.Name,
                Pin  = dbItem.Pin
            };

            return(retVal);
        }
        public IHttpActionResult Post([FromBody] string data)
        {
            data = WebUtility.UrlDecode(data);
            if (string.IsNullOrEmpty(data))
            {
                return(BadRequest("Empty request detected."));
            }

            IHttpActionResult retVal = null;
            PropertyTagDTO    dto    = JsonConvert.DeserializeObject <PropertyTagDTO>(data);
            var cqProcessor          = base.DIContainer.Resolve <ICQProcessor <PropertyTagDTO> >();
            var srResult             = cqProcessor.Process(new AddPropertyTagRequest()
            {
                Pin = dto.Pin, Name = dto.Name
            });

            if (srResult.Success)
            {
                retVal = Created <PropertyTagDTO>(Request.RequestUri + srResult.Data.Id.ToString(), srResult.Data);
            }
            else
            {
                switch (srResult.ErrorID)
                {
                case "404":
                    retVal = NotFound();
                    break;

                case "422":
                    // Conflict = 409, really should be 422 - Unprocessable Entity
                    // the server understands the content type of the request entity (hence a 415 Unsupported Media Type status code is inappropriate),
                    // and the syntax of the request entity is correct (thus a 400 Bad Request status code is inappropriate) but was unable to process the contained instructions.
                    retVal = new ErrorResult(Request, HttpStatusCode.Conflict, srResult.Message);
                    break;

                default:
                    retVal = InternalServerError(new ApplicationException(srResult.Message));
                    break;
                }
            }

            return(retVal);
        }
Пример #4
0
        public static List <PropertyTagDTO> MapFieldValues(ICollection <EF.PropertyTag> dbItems)
        {
            List <PropertyTagDTO> retVal = new List <PropertyTagDTO>();

            if (dbItems == null)
            {
                return(retVal);
            }

            foreach (var dbItem in dbItems)
            {
                PropertyTagDTO dto = new PropertyTagDTO()
                {
                    Id   = dbItem.Id,
                    Name = dbItem.Name,
                    Pin  = dbItem.Pin
                };

                retVal.Add(dto);
            }

            return(retVal);
        }
Пример #5
0
        public ServiceResult <IPropertyTag> AddPropertyTag(string pin, string name)
        {
            ServiceResult <IPropertyTag> retVal = new ServiceResult <IPropertyTag>();

            FVCP.Persistence.EF.PropertyTag dbItem = null;
            using (var db = new PropertyEntities())
            {
                dbItem = db.PropertyTags
                         .FirstOrDefault(x => x.Pin == pin && x.Name == name);

                if (dbItem == null)
                {   // Go ahead and add the item, it isn't a duplicate.
                    dbItem = new EF.PropertyTag()
                    {
                        Name = name,
                        Pin  = pin
                    };

                    db.PropertyTags.Add(dbItem);
                    db.SaveChanges();  // ID value should populate.

                    PropertyTagDTO     dto    = PropertyTagRepository.MapFieldValues(dbItem);
                    PropertyTagFactory myFact = new PropertyTagFactory();
                    retVal.Data    = myFact.Create(dto);
                    retVal.Success = true;
                }
                else
                {
                    retVal.Success = false;
                    retVal.ErrorID = "422";
                    retVal.Message = string.Format("Unprocessable Entity - Tag '{0}' already exists for PIN '{1}'", name, pin);
                }
            }

            return(retVal);
        }
        public IHttpActionResult Put([FromBody] string data)
        {
            data = WebUtility.UrlDecode(data);
            if (string.IsNullOrEmpty(data))
            {
                return(BadRequest("Empty request detected."));
            }

            IHttpActionResult retVal = null;
            PropertyTagDTO    dto    = JsonConvert.DeserializeObject <PropertyTagDTO>(data);
            var cqProcessor          = base.DIContainer.Resolve <ICQProcessor <PropertyTagDTO> >();
            var srResult             = cqProcessor.Process(new UpdatePropertyTagRequest()
            {
                Id = dto.Id, Name = dto.Name
            });

            if (srResult.Success)
            {
                retVal = Ok <PropertyTagDTO>(srResult.Data);
            }
            else
            {
                switch (srResult.ErrorID)
                {
                case "404":
                    retVal = NotFound();
                    break;

                default:
                    retVal = InternalServerError(new ApplicationException(srResult.Message));
                    break;
                }
            }

            return(retVal);
        }
 public virtual IPropertyTag Create(PropertyTagDTO dto)
 {
     return(new PropertyTag(dto));
 }
        public static List<PropertyTagDTO> MapFieldValues(ICollection<EF.PropertyTag> dbItems)
        {
            List<PropertyTagDTO> retVal = new List<PropertyTagDTO>();

            if (dbItems == null)
                return retVal;

            foreach (var dbItem in dbItems)
            {
                PropertyTagDTO dto = new PropertyTagDTO()
                {
                    Id = dbItem.Id,
                    Name = dbItem.Name,
                    Pin = dbItem.Pin
                };

                retVal.Add(dto);
            }

            return retVal;
        }
        public static PropertyTagDTO MapFieldValues(EF.PropertyTag dbItem)
        {
            if (dbItem == null)
                return null;

            PropertyTagDTO retVal = new PropertyTagDTO()
            {
                Id = dbItem.Id,
                Name = dbItem.Name,
                Pin = dbItem.Pin
            };

            return retVal;
        }
 public virtual IPropertyTag Create(PropertyTagDTO dto)
 {
     return new PropertyTag(dto);
 }
Пример #11
0
 public PropertyTag(PropertyTagDTO data)
 {
     this.Data = data;
 }
 public PropertyTag(PropertyTagDTO data)
 {
     this.Data = data;
 }