public async Task CalendarUserModel_Update_DoesUpdate()
        {
            // Arrange
            Random rnd = new Random();

            CalendarUser calendarUser = new CalendarUser();

            calendarUser.Color = Guid.NewGuid().ToString();
            calendarUser.IsVisibleInCalendar = rnd.Next(100) < 50;
            calendarUser.NameInCalendar      = Guid.NewGuid().ToString();
            calendarUser.SiteId = rnd.Next(1, 255);

            DbContext.CalendarUsers.Add(calendarUser);
            await DbContext.SaveChangesAsync();

            //CalendarUserVersion calendarUserVer = new CalendarUserVersion();


            // Act
            CalendarUserModel calendarUserModel = new CalendarUserModel();

            calendarUserModel.Color = Guid.NewGuid().ToString();
            calendarUserModel.IsVisibleInCalendar = rnd.Next(100) < 50;
            calendarUserModel.NameInCalendar      = "Georg Jensen";
            calendarUserModel.SiteId = rnd.Next(1, 255);

            calendarUserModel.Id = calendarUser.Id;

            await calendarUserModel.Update(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);
        }
Beispiel #2
0
        public async Task <OperationResult> Update(CalendarUserModel requestModel)
        {
            try
            {
//                CalendarUser calendarUser = _dbContext.CalendarUsers.FirstOrDefault(x => x.Id == requestModel.Id);
//                if (calendarUser == null)
//                {
//                    return new OperationResult(false,
//                        _caseManagementLocalizationService.GetString("CalendarUserNotFound"));
//                }
//
//                calendarUser.SiteId = requestModel.SiteId;
//                calendarUser.Color = requestModel.Color;
//                calendarUser.IsVisibleInCalendar = requestModel.IsVisibleInCalendar;
//                calendarUser.NameInCalendar = requestModel.NameInCalendar;
                await requestModel.Update(_dbContext); //TODO

//                await _dbContext.SaveChangesAsync();
                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       = requestModel.NameInCalendar;
                    if (string.IsNullOrEmpty(label))
                    {
                        label = $"Empty company {nextItemUid}";
                    }

                    await core.EntityItemUpdate(entityGroup.Id, $"{label}", "",
                                                nextItemUid.ToString(), 0);

                    //if (item != null)
                    //{
                    //    entityGroup = core.EntityGroupRead(caseManagementSetting.RelatedEntityGroupId.ToString());
                    //    if (entityGroup != null)
                    //    {
                    //        foreach (var entityItem in entityGroup.EntityGroupItemLst)
                    //        {
                    //            if (entityItem.MicrotingUUID == item.MicrotingUUID)
                    //            {
                    //                calendarUser.RelatedEntityId = entityItem.Id;
                    //            }
                    //        }
                    //    }
                    //}
                    //_dbContext.SaveChanges();
                }

                return(new OperationResult(true,
                                           _caseManagementLocalizationService.GetString("CalendarUserUpdatedSuccessfully")));
            }
            catch (Exception e)
            {
                Trace.TraceError(e.Message);
                _logger.LogError(e.Message);
                return(new OperationResult(false,
                                           _caseManagementLocalizationService.GetString("ErrorWhileUpdatingCalendarUser")));
            }
        }
Beispiel #3
0
        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")));
            }
        }