Exemple #1
0
        public EntityRelationListResponse Read(List <DbEntity> storageEntityList = null)
        {
            EntityRelationListResponse response = new EntityRelationListResponse();

            response.Timestamp = DateTime.UtcNow;
            response.Object    = null;

            try
            {
                var relations = Cache.GetRelations();
                if (relations != null)
                {
                    response.Object  = relations;
                    response.Hash    = Cache.GetRelationsHash();
                    response.Success = true;
                    response.Message = null;
                    return(response);
                }

                relations = DbContext.Current.RelationRepository.Read().Select(x => x.MapTo <EntityRelation>()).ToList();

                List <DbEntity> dbEntities = storageEntityList;
                if (dbEntities == null)
                {
                    dbEntities = new DbEntityRepository().Read();
                }
                foreach (EntityRelation relation in relations)
                {
                    var originEntity = dbEntities.Single(x => x.Id == relation.OriginEntityId);
                    var targetEntity = dbEntities.Single(x => x.Id == relation.TargetEntityId);
                    relation.OriginEntityName = originEntity.Name;
                    relation.TargetEntityName = targetEntity.Name;
                    relation.OriginFieldName  = originEntity.Fields.Single(x => x.Id == relation.OriginFieldId).Name;
                    relation.TargetFieldName  = targetEntity.Fields.Single(x => x.Id == relation.TargetFieldId).Name;
                }

                if (relations != null)
                {
                    Cache.AddRelations(relations);
                }

                //we use instance from cache as return value, because in cache we deepcopy collection
                response.Object  = Cache.GetRelations();
                response.Hash    = Cache.GetRelationsHash();
                response.Success = true;
                response.Message = null;
                return(response);
            }
            catch (Exception e)
            {
                response.Success   = false;
                response.Object    = null;
                response.Hash      = null;
                response.Timestamp = DateTime.UtcNow;
#if DEBUG
                response.Message = e.Message + e.StackTrace;
#endif
                return(response);
            }
        }
Exemple #2
0
        public EntityRelationResponse Read(string name)
        {
            EntityRelationResponse response = new EntityRelationResponse();

            response.Timestamp = DateTime.UtcNow;
            response.Object    = null;

            if (string.IsNullOrWhiteSpace(name))
            {
                response.Success = false;
                response.Errors.Add(new ErrorModel("name", null, "The name argument is NULL."));
                return(response);
            }

            var relations = Cache.GetRelations();

            if (relations != null)
            {
                response.Object  = relations.SingleOrDefault(x => x.Name == name);
                response.Success = true;
                if (response.Object != null)
                {
                    response.Message = "The entity relation was successfully returned!";
                }
                else
                {
                    response.Message = string.Format("The entity relation '{0}' does not exist!", name);
                }
                return(response);
            }

            try
            {
                relations        = Read().Object;
                response.Object  = relations.SingleOrDefault(x => x.Name == name);
                response.Success = false;

                if (response.Object != null)
                {
                    response.Success = true;
                    response.Message = "The entity relation was successfully returned!";
                }
                else
                {
                    response.Success = true;
                    response.Message = string.Format("The entity relation '{0}' does not exist!", name);
                }
                return(response);
            }
            catch (Exception e)
            {
                response.Success = false;
#if DEBUG
                response.Message = e.Message + e.StackTrace;
#endif
                return(response);
            }
        }
        public EntityRelationResponse Read(Guid relationId)
        {
            EntityRelationResponse response = new EntityRelationResponse();

            response.Timestamp = DateTime.UtcNow;
            response.Object    = null;
            response.Success   = true;
            try
            {
                var relations = Cache.GetRelations();
                if (relations != null)
                {
                    response.Object  = relations.SingleOrDefault(x => x.Id == relationId);
                    response.Success = true;
                    if (response.Object != null)
                    {
                        response.Message = "The entity relation was successfully returned!";
                    }
                    else
                    {
                        response.Message = string.Format("The entity relation with id '{0}' does not exist!", relationId);
                    }
                    return(response);
                }

                relations       = Read().Object;
                response.Object = relations.SingleOrDefault(x => x.Id == relationId);
                if (response.Object != null)
                {
                    response.Message = "The entity relation was successfully returned!";
                }
                else
                {
                    response.Message = string.Format("The entity relation '{0}' does not exist!", relationId);
                }

                return(response);
            }
            catch (Exception e)
            {
                response.Success = false;
                if (ErpSettings.DevelopmentMode)
                {
                    response.Message = e.Message + e.StackTrace;
                }
                return(response);
            }
        }