public async Task Update(
            ISiteUser user,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();
            if (user == null)
            {
                throw new ArgumentException("user can't be null");
            }
            if (user.SiteId == Guid.Empty)
            {
                throw new ArgumentException("user must have a siteguid");
            }
            if (user.Id == Guid.Empty)
            {
                throw new ArgumentException("user must have a non empty guid for id");
            }

            SiteUser siteUser = SiteUser.FromISiteUser(user);

            bool tracking = dbContext.ChangeTracker.Entries <SiteUser>().Any(x => x.Entity.Id == siteUser.Id);

            if (!tracking)
            {
                dbContext.Users.Update(siteUser);
            }

            int rowsAffected =
                await dbContext.SaveChangesAsync(cancellationToken)
                .ConfigureAwait(false)
            ;
        }
Example #2
0
        //protected string projectId;

        //private async Task EnsureProjectId()
        //{
        //    if (string.IsNullOrEmpty(projectId))
        //    {
        //        projectId = await projectResolver.ResolveProjectId().ConfigureAwait(false);
        //    }

        //}

        #region User

        public async Task Create(
            ISiteUser user,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            if (user == null)
            {
                throw new ArgumentException("user cannot be null");
            }
            if (user.SiteId == Guid.Empty)
            {
                throw new ArgumentException("user must have a siteid");
            }
            if (user.Id == Guid.Empty)
            {
                throw new ArgumentException("user must have a non-empty id");
            }

            //await EnsureProjectId().ConfigureAwait(false);
            var projectId = user.SiteId.ToString();

            var siteUser = SiteUser.FromISiteUser(user);

            await userCommands.CreateAsync(
                projectId,
                siteUser.Id.ToString(),
                siteUser,
                cancellationToken).ConfigureAwait(false);
        }
Example #3
0
        public async Task Create(
            ISiteUser user,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();

            if (user == null)
            {
                throw new ArgumentException("user can't be null");
            }
            if (user.SiteId == Guid.Empty)
            {
                throw new ArgumentException("user must have a siteid");
            }
            if (user.Id == Guid.Empty)
            {
                throw new ArgumentException("user must have a non empty guid for id");
            }

            SiteUser siteUser = SiteUser.FromISiteUser(user);

            using (var dbContext = _contextFactory.CreateContext())
            {
                dbContext.Users.Add(siteUser);

                int rowsAffected =
                    await dbContext.SaveChangesAsync(cancellationToken)
                    .ConfigureAwait(false)
                ;
            }
        }
Example #4
0
        public async Task Update(
            ISiteUser user,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            cancellationToken.ThrowIfCancellationRequested();
            if (user == null)
            {
                throw new ArgumentException("user can't be null");
            }
            if (user.SiteId == Guid.Empty)
            {
                throw new ArgumentException("user must have a siteguid");
            }
            if (user.Id == Guid.Empty)
            {
                throw new ArgumentException("user must have a non empty guid for id");
            }

            SiteUser siteUser = SiteUser.FromISiteUser(user);

            using (var dbContext = _contextFactory.CreateContext())
            {
                bool tracking = dbContext.ChangeTracker.Entries <SiteUser>().Any(x => x.Entity.Id == siteUser.Id);
                if (!tracking)
                {
                    dbContext.Users.Update(siteUser);
                }
                else
                {
                    var tracked = dbContext.ChangeTracker.Entries <SiteUser>().FirstOrDefault(x => x.Entity.Id == siteUser.Id);
                    var s       = tracked.State;
                    if (s == EntityState.Unchanged)
                    {
                        tracked.State = EntityState.Detached;
                        try
                        {
                            dbContext.Users.Update(siteUser);
                        }
                        catch (Exception)
                        { }
                    }
                }

                int rowsAffected =
                    await dbContext.SaveChangesAsync(cancellationToken)
                    .ConfigureAwait(false)
                ;
            }
        }
        public async Task Create(
            ISiteUser user,
            CancellationToken cancellationToken = default(CancellationToken))
        {
            ThrowIfDisposed();
            cancellationToken.ThrowIfCancellationRequested();

            if (user == null)
            {
                throw new ArgumentException("user can't be null");
            }
            if (user.SiteId == Guid.Empty)
            {
                throw new ArgumentException("user must have a siteid");
            }
            if (user.Id == Guid.Empty)
            {
                throw new ArgumentException("user must have a non empty guid for id");
            }

            SiteUser siteUser = SiteUser.FromISiteUser(user);

            dbContext.Users.Add(siteUser);

            int rowsAffected =
                await dbContext.SaveChangesAsync(cancellationToken)
                .ConfigureAwait(false)
            ;

            //if (user.UserGuid == Guid.Empty)
            //{
            //    //user.UserId = siteUser.UserId;
            //    user.UserGuid = siteUser.UserGuid;
            //}

            //return rowsAffected > 0;
        }