Пример #1
0
        public IActionResult CreateTameplate([FromBody] ReviewTameplateModel model)
        {
            var             identity  = HttpContext.User.Identity as ClaimsIdentity;
            string          email     = identity.FindFirst("UserEmail").Value;
            ReviewTameplate tameplate = new ReviewTameplate()
            {
                Name = model.Name, Description = model.Descritpion, UsersEmail = email
            };

            foreach (var row in model.Header)
            {
                if (row.ColumnName == null)
                {
                    HeaderRow headerRow = new HeaderRow()
                    {
                        Function = row.Fcn, Parameter = row.Parameter, Name = row.Name
                    };
                    tameplate.HeaderRow.Add(headerRow);
                }
            }
            foreach (string s in model.Role)
            {
                ReviewRole role = new ReviewRole()
                {
                    Name = s
                };
                tameplate.ReviewRole.Add(role);
            }
            foreach (ReviewTameplateViewModel m in model.Model)
            {
                ReviewColumn column = new ReviewColumn()
                {
                    Name = m.ColumnName, Type = m.Type
                };

                ReviewHeader row = model.Header.Where(x => x.ColumnName == m.ColumnName).FirstOrDefault();
                if (row != null)
                {
                    HeaderRow headerRow = new HeaderRow()
                    {
                        Function = row.Fcn, Parameter = row.Parameter, Name = row.Name
                    };
                    column.HeaderRow.Add(headerRow);
                    tameplate.HeaderRow.Add(headerRow);
                }
                tameplate.ReviewColumn.Add(column);
                if (m.Option != null)
                {
                    foreach (string s in m.Option)
                    {
                        ReviewColumnTypeEnum en = new ReviewColumnTypeEnum()
                        {
                            Name = s
                        };
                        column.ReviewColumnTypeEnum.Add(en);
                    }
                }
            }
            context.ReviewTameplate.Add(tameplate);
            context.SaveChanges();
            return(Ok());
        }
Пример #2
0
        public IActionResult UpdateTemplate([FromBody] ReviewTameplateForForm model)
        {
            var review = context.ReviewTameplate.Where(x => x.Id == model.Id).Include(x => x.ReviewColumn).Include(x => x.HeaderRow).Include(x => x.ReviewRole).FirstOrDefault();

            review.ReviewColumn = review.ReviewColumn.Select(x => { x.Deleted = true; return(x); }).ToList();
            review.HeaderRow    = review.HeaderRow.Select(x => { x.Deleted = true; return(x); }).ToList();
            review.ReviewRole   = review.ReviewRole.Select(x => { x.Deleted = true; return(x); }).ToList();
            review.Name         = model.Name;
            review.Description  = model.Descritpion;

            foreach (var r in model.Roles)
            {
                ReviewRole role = review.ReviewRole.Where(x => x.Id == r.Id).FirstOrDefault();
                if (role != null)
                {
                    role.Name    = r.Name;
                    role.Deleted = false;
                }
                else
                {
                    ReviewRole rl = new ReviewRole()
                    {
                        Name = r.Name
                    };
                    review.ReviewRole.Add(rl);
                }
            }


            foreach (var c in model.Columns)
            {
                ReviewColumn column = review.ReviewColumn.Where(x => x.Id == c.Id).FirstOrDefault();
                if (column != null)
                {
                    var enums = context.ReviewColumnTypeEnum.Where(x => x.ReviewColumnId == column.Id).ToList();
                    context.ReviewColumnTypeEnum.RemoveRange(enums);//delete all enum and create new
                    column.Type    = c.Type;
                    column.Name    = c.ColumnName;
                    column.Deleted = false;
                    //var isHeaderMakeSense = context.ReviewColumn.Where(x => x.Id == column.Id).Include(x => x.HeaderRow).FirstOrDefault();
                    //bool sense = isHeaderMakeSense.HeaderRow.
                    if (enums != null && c.Option != null)
                    {
                        foreach (string s in c.Option)
                        {
                            ReviewColumnTypeEnum t = new ReviewColumnTypeEnum()
                            {
                                Name = s
                            };
                            column.ReviewColumnTypeEnum.Add(t);
                        }
                    }
                }
                else
                {
                    ReviewColumn cl = new ReviewColumn()
                    {
                        Name = c.ColumnName, Type = c.Type
                    };
                    if (c.Option != null)
                    {
                        foreach (string s in c.Option)
                        {
                            ReviewColumnTypeEnum t = new ReviewColumnTypeEnum()
                            {
                                Name = s
                            };
                            cl.ReviewColumnTypeEnum.Add(t);
                        }
                    }
                    review.ReviewColumn.Add(cl);
                }
            }
            foreach (var h in model.Header)
            {
                if (h.Id != null)
                {
                    review.HeaderRow.Where(x => x.Id == h.Id).FirstOrDefault().Deleted = false;
                }
                else
                {
                    var col = review.ReviewColumn.Where(x => x.Name == h.ColumnName).FirstOrDefault();
                    if (col != null)
                    {
                        HeaderRow header = new HeaderRow()
                        {
                            Function = h.Fcn, ReviewColumnId = col.Id, Name = h.Name, Parameter = h.Parameter, ReviewTameplateId = review.Id
                        };
                        context.HeaderRow.Add(header);
                    }
                    else
                    {
                        HeaderRow header = new HeaderRow()
                        {
                            Name = h.Name, ReviewTameplateId = review.Id
                        };
                        context.HeaderRow.Add(header);
                    }
                }
            }

            context.SaveChanges();
            return(Ok());
        }