public Task <IEnumerable <LookupDto> > Handle(SyncHostCommand request, CancellationToken cancellationToken)
            {
                var hosts = request.Hosts ?? new List <LookupDto>();

                foreach (var apphosts in hosts)
                {
                    var localhost = _db.Host.FirstOrDefault(u => u.Id == apphosts.Id);
                    DataModels.Colony.Host host = new DataModels.Colony.Host()
                    {
                        Id               = apphosts.Id,
                        Name             = apphosts.Name,
                        IsActive         = apphosts.IsActive,
                        CreatedDate      = apphosts.CreatedDate,
                        CreatedBy        = apphosts.CreatedBy,
                        LastModifiedDate = apphosts.LastModifiedDate,
                        LastModifiedBy   = apphosts.LastModifiedBy
                    };

                    if (localhost == null)
                    {
                        _db.Host.Add(host);
                    }
                    else if (apphosts.LastModifiedDate > localhost.LastModifiedDate)
                    {
                        _db.Host.Remove(localhost);
                        _db.Host.Add(host);
                    }
                    else
                    {
                        apphosts.Name             = localhost.Name;
                        apphosts.IsActive         = localhost.IsActive;
                        apphosts.CreatedDate      = localhost.CreatedDate;
                        apphosts.CreatedBy        = localhost.CreatedBy;
                        apphosts.LastModifiedDate = localhost.LastModifiedDate;
                        apphosts.LastModifiedBy   = localhost.LastModifiedBy;
                    }
                }

                var apphostsIDs      = hosts.Select(u => u.Id).ToList();
                var uniqueLocalhosts = _db.Host.Where(u => !apphostsIDs.Contains(u.Id)).Select(u => new LookupDto()
                {
                    Id               = u.Id,
                    Name             = u.Name,
                    IsActive         = u.IsActive,
                    CreatedDate      = u.CreatedDate,
                    CreatedBy        = u.CreatedBy,
                    LastModifiedDate = u.LastModifiedDate,
                    LastModifiedBy   = u.LastModifiedBy
                }).ToList();

                hosts.AddRange(uniqueLocalhosts);
                _db.SaveChanges();

                return(Task.FromResult <IEnumerable <LookupDto> >(hosts));
            }
            public async Task <Guid> Handle(AddHostCommand request, CancellationToken cancellationToken)
            {
                var host = new DataModels.Colony.Host()
                {
                    Id       = request.Id,
                    Name     = request.Name,
                    IsActive = request.IsActive
                };
                await _db.Host.AddAsync(host, cancellationToken);

                _db.SaveChanges();
                return(host.Id);
            }