public async Task <CompleteShape> GetCompleteShape(int pid, int id)
        {
            CompleteShape   completeShape = new CompleteShape();
            List <PointDTO> pointDTOs     = new List <PointDTO>();
            Result          result        = new Result();
            Shapes          shapes        = await context.Shapes.Include(S => S.Point).Include(S => S.Result).FirstOrDefaultAsync(S => S.Id == id);

            if (shapes != null)
            {
                foreach (var r in shapes.Result)
                {
                    if (r.ProjectId == pid)
                    {
                        result = r;
                        break;
                    }
                }
                foreach (var pnt in shapes.Point)
                {
                    pointDTOs.Add(mapper.Map <PointDTO>(pnt));
                }
            }
            completeShape = new CompleteShape(mapper.Map <ShapesDTO>(shapes), pointDTOs, mapper.Map <ResultsDTO>(result));
            return(completeShape);
        }
        public async Task <List <CompleteShape> > GetCompleteShapes(int pid)
        {
            List <CompleteShape> completeShapes = new List <CompleteShape>();
            CompleteShape        completeShape  = new CompleteShape();
            List <PointDTO>      pointDTOs      = new List <PointDTO>();
            Result   result = new Result();
            Projects p      = await context.Projects.Include(pr => pr.ProjectShapeConn).FirstOrDefaultAsync(pr => pr.Id == pid);

            foreach (var item in p.ProjectShapeConn)
            {
                Shapes shapes = await context.Shapes.Include(S => S.Point).Include(S => S.Result).FirstOrDefaultAsync(S => S.Id == item.ShapeId);

                foreach (var r in shapes.Result)
                {
                    if (r.ProjectId == pid)
                    {
                        result = r;
                        break;
                    }
                }
                foreach (var pnt in shapes.Point)
                {
                    pointDTOs.Add(mapper.Map <PointDTO>(pnt));
                }
                completeShape = new CompleteShape(mapper.Map <ShapesDTO>(shapes), pointDTOs, mapper.Map <ResultsDTO>(result));
                pointDTOs     = new List <PointDTO>();
                completeShapes.Add(completeShape);
            }
            return(completeShapes);
        }