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); }
public ActionResult <int> Post([FromBody] UserDashboardWidgetDto userDashboardWidget) { //TODO : Validations return(Ok(_widgetService.CreateUserDashboardWidget(UserId, userDashboardWidget))); }