예제 #1
0
        // Create a new version of this object or use it from the lookup.
        public static CaseDtoGen Create(Coalesce.Domain.Case obj, ClaimsPrincipal user = null, string includes  = null,
                                        Dictionary <object, object> objects            = null, IncludeTree tree = null)
        {
            // Return null of the object is null;
            if (obj == null)
            {
                return(null);
            }

            if (objects == null)
            {
                objects = new Dictionary <object, object>();
            }

            includes = includes ?? "";

            // Applicable includes for Case


            // Applicable excludes for Case
            bool excludePersonListGen = includes == "PersonListGen";

            // Applicable roles for Case
            if (user != null)
            {
            }



            // See if the object is already created, but only if we aren't restricting by an includes tree.
            // If we do have an IncludeTree, we know the exact structure of our return data, so we don't need to worry about circular refs.
            if (tree == null && objects.ContainsKey(obj))
            {
                return((CaseDtoGen)objects[obj]);
            }

            var newObject = new CaseDtoGen();

            if (tree == null)
            {
                objects.Add(obj, newObject);
            }
            // Fill the properties of the object.
            newObject.CaseKey           = obj.CaseKey;
            newObject.Title             = obj.Title;
            newObject.Description       = obj.Description;
            newObject.OpenedAt          = obj.OpenedAt;
            newObject.AssignedToId      = obj.AssignedToId;
            newObject.ReportedById      = obj.ReportedById;
            newObject.Attachment        = obj.Attachment;
            newObject.Severity          = obj.Severity;
            newObject.Status            = obj.Status;
            newObject.DevTeamAssignedId = obj.DevTeamAssignedId;
            if (!(excludePersonListGen))
            {
                if (tree == null || tree[nameof(newObject.AssignedTo)] != null)
                {
                    newObject.AssignedTo = PersonDtoGen.Create(obj.AssignedTo, user, includes, objects, tree?[nameof(newObject.AssignedTo)]);
                }
            }
            if (!(excludePersonListGen))
            {
                if (tree == null || tree[nameof(newObject.ReportedBy)] != null)
                {
                    newObject.ReportedBy = PersonDtoGen.Create(obj.ReportedBy, user, includes, objects, tree?[nameof(newObject.ReportedBy)]);
                }
            }
            var propValCaseProducts = obj.CaseProducts;

            if (propValCaseProducts != null && (tree == null || tree[nameof(newObject.CaseProducts)] != null))
            {
                newObject.CaseProducts = propValCaseProducts.OrderBy("CaseProductId ASC").Select(f => CaseProductDtoGen.Create(f, user, includes, objects, tree?[nameof(newObject.CaseProducts)])).ToList();
            }
            else if (propValCaseProducts == null && tree?[nameof(newObject.CaseProducts)] != null)
            {
                newObject.CaseProducts = new CaseProductDtoGen[0];
            }


            newObject.DevTeamAssigned = DevTeamDtoGen.Create(obj.DevTeamAssigned, user, includes, objects, tree?[nameof(newObject.DevTeamAssigned)]);

            return(newObject);
        }
예제 #2
0
        // Create a new version of this object or use it from the lookup.
        public static CompanyDtoGen Create(Coalesce.Domain.Company obj, ClaimsPrincipal user = null, string includes = null,
                                           Dictionary <object, object> objects = null, IncludeTree tree = null)
        {
            // Return null of the object is null;
            if (obj == null)
            {
                return(null);
            }

            if (objects == null)
            {
                objects = new Dictionary <object, object>();
            }

            includes = includes ?? "";

            // Applicable includes for Company


            // Applicable excludes for Company


            // Applicable roles for Company
            if (user != null)
            {
            }



            // See if the object is already created, but only if we aren't restricting by an includes tree.
            // If we do have an IncludeTree, we know the exact structure of our return data, so we don't need to worry about circular refs.
            if (tree == null && objects.ContainsKey(obj))
            {
                return((CompanyDtoGen)objects[obj]);
            }

            var newObject = new CompanyDtoGen();

            if (tree == null)
            {
                objects.Add(obj, newObject);
            }
            // Fill the properties of the object.
            newObject.CompanyId = obj.CompanyId;
            newObject.Name      = obj.Name;
            newObject.Address1  = obj.Address1;
            newObject.Address2  = obj.Address2;
            newObject.City      = obj.City;
            newObject.State     = obj.State;
            newObject.ZipCode   = obj.ZipCode;
            newObject.AltName   = obj.AltName;
            var propValEmployees = obj.Employees;

            if (propValEmployees != null && (tree == null || tree[nameof(newObject.Employees)] != null))
            {
                newObject.Employees = propValEmployees.OrderBy("PersonId ASC").Select(f => PersonDtoGen.Create(f, user, includes, objects, tree?[nameof(newObject.Employees)])).ToList();
            }
            else if (propValEmployees == null && tree?[nameof(newObject.Employees)] != null)
            {
                newObject.Employees = new PersonDtoGen[0];
            }

            return(newObject);
        }