コード例 #1
0
ファイル: WidgetService.cs プロジェクト: goodjobmate/TradeApp
        public int CreateUserDashboardWidget(int userId, UserDashboardWidgetDto userDashboardWidget)
        {
            int userDashboardId;

            if (userDashboardWidget.PageId == null)
            {
                var newUserDashboard = new UserDashboard
                {
                    UserId = userId,
                    Name   = userDashboardWidget.PageName
                };

                _context.UserDashboard.Add(newUserDashboard);

                _context.SaveChanges();

                userDashboardId = newUserDashboard.Id;
            }
            else
            {
                var existingUserDashboard = _context.UserDashboard.Include(x => x.UserDashboardWidgets)
                                            .FirstOrDefault(x => x.Id == userDashboardWidget.PageId);

                if (existingUserDashboard == null)
                {
                    return(0);
                }

                userDashboardId = existingUserDashboard.Id;

                _context.UserDashboardWidget.RemoveRange(existingUserDashboard.UserDashboardWidgets);
                _context.SaveChanges();
            }

            foreach (var item in from lgDto in userDashboardWidget.Item.Lg.ToList()
                     let widgetName = userDashboardWidget.Widget.FirstOrDefault(w => w.IndexId == Convert.ToInt32(lgDto.I))
                                      ?.Name
                                      let widgetId = _context.Widget.SingleOrDefault(x => x.Name == widgetName)?.Id
                                                     select new UserDashboardWidget
            {
                CreatedAt = DateTime.Now,
                CreatedById = userId,
                Height = lgDto.H,
                Width = lgDto.W,
                XAxis = lgDto.X,
                YAxis = lgDto.Y,
                UserDashboardId = userDashboardId,
                WidgetId = widgetId,
                Index = lgDto.I
            })
            {
                _context.UserDashboardWidget.Add(item);
                _context.SaveChanges();
            }

            return(userDashboardId);
        }
コード例 #2
0
        public ActionResult <int> Post([FromBody] UserDashboardWidgetDto userDashboardWidget)
        {
            //TODO : Validations

            return(Ok(_widgetService.CreateUserDashboardWidget(UserId, userDashboardWidget)));
        }