public async Task CalendarUserModel_Save_DoesSave() { // Arrange Random rnd = new Random(); CalendarUserModel calendarUserModel = new CalendarUserModel(); calendarUserModel.Color = Guid.NewGuid().ToString(); calendarUserModel.NameInCalendar = Guid.NewGuid().ToString(); calendarUserModel.IsVisibleInCalendar = rnd.Next(100) < 50; calendarUserModel.SiteId = rnd.Next(1, 255); // Act await calendarUserModel.Create(DbContext); CalendarUser dbCalendarUser = DbContext.CalendarUsers.AsNoTracking().First(); List <CalendarUser> userList = DbContext.CalendarUsers.AsNoTracking().ToList(); //List<CalendarUserVersions> versionList = DbContext.CalendarUsersVersions.AsNoTracking().ToList(); // Assert Assert.NotNull(dbCalendarUser); Assert.AreEqual(1, userList.Count()); Assert.AreEqual(calendarUserModel.Color, dbCalendarUser.Color); Assert.AreEqual(calendarUserModel.IsVisibleInCalendar, dbCalendarUser.IsVisibleInCalendar); Assert.AreEqual(calendarUserModel.NameInCalendar, dbCalendarUser.NameInCalendar); Assert.AreEqual(calendarUserModel.SiteId, dbCalendarUser.SiteId); }
public async Task <OperationResult> Create(CalendarUserModel calendarUserModel) { try { // CalendarUser calendarUser = new CalendarUser(); // { // SiteId = calendarUserModel.SiteId, // NameInCalendar = calendarUserModel.NameInCalendar, // Color = calendarUserModel.Color, // IsVisibleInCalendar = calendarUserModel.IsVisibleInCalendar, // }; // _dbContext.CalendarUsers.Add(calendarUser); // await _dbContext.SaveChangesAsync(); CalendarUser existingCalendarUser = _dbContext.CalendarUsers.SingleOrDefault(x => x.SiteId == calendarUserModel.SiteId); if (existingCalendarUser == null) { await calendarUserModel.Create(_dbContext); } else { calendarUserModel.Id = existingCalendarUser.Id; calendarUserModel.WorkflowState = Constants.WorkflowStates.Created; await calendarUserModel.Update(_dbContext); } PluginConfigurationValue caseManagementSetting = _dbContext.PluginConfigurationValues.SingleOrDefault(x => x.Name == "CaseManagementBaseSettings:RelatedEntityGroupId"); if (caseManagementSetting != null) { Core core = await _coreHelper.GetCore(); EntityGroup entityGroup = await core.EntityGroupRead(caseManagementSetting.Value); if (entityGroup == null) { return(new OperationResult(false, "Entity group not found")); } int nextItemUid = entityGroup.EntityGroupItemLst.Count; string label = calendarUserModel.NameInCalendar; if (string.IsNullOrEmpty(label)) { label = $"Empty company {nextItemUid}"; } EntityItem item = await core.EntitySelectItemCreate(entityGroup.Id, $"{label}", 0, nextItemUid.ToString()); if (item != null) { entityGroup = await core.EntityGroupRead(caseManagementSetting.Value); if (entityGroup != null) { foreach (EntityItem entityItem in entityGroup.EntityGroupItemLst) { if (entityItem.MicrotingUUID == item.MicrotingUUID) { calendarUserModel.RelatedEntityId = entityItem.Id; } } } } await _dbContext.SaveChangesAsync(); } return(new OperationResult(true, _caseManagementLocalizationService.GetString("CalendarUserHasBeenCreated"))); } catch (Exception e) { Trace.TraceError(e.Message); _logger.LogError(e.Message); return(new OperationResult(false, _caseManagementLocalizationService.GetString("ErrorWhileCreatingCalendarUser"))); } }