Example #1
0
            public async Task <Guid> Handle(AddColonyCommand request, CancellationToken cancellationToken)
            {
                var colony = new DataModels.Colony.Colony()
                {
                    Id               = request.ColonyDto.Id,
                    IsActive         = request.ColonyDto.IsActive,
                    HostId           = request.ColonyDto.HostId,
                    AreaId           = request.ColonyDto.AreaId,
                    HiveNumber       = request.ColonyDto.HiveNumber,
                    ColonyNumber     = request.ColonyDto.ColonyNumber,
                    ColonySource     = request.ColonyDto.ColonySource,
                    QueenType        = request.ColonyDto.QueenType,
                    Markings         = request.ColonyDto.Markings,
                    GeneticBreed     = request.ColonyDto.GeneticBreed,
                    InstallationType = request.ColonyDto.InstallationType,
                    AdditionalInfo   = request.ColonyDto.AdditionalInfo,
                    InstallDate      = request.ColonyDto.InstallDate,
                    HiveType         = request.ColonyDto.HiveType,
                    BroodChamberType = request.ColonyDto.BroodChamberType,
                    QueenExclude     = request.ColonyDto.QueenExclude
                };
                await _db.AddAsync(colony, cancellationToken);

                _db.SaveChanges();
                return(colony.Id);
            }
Example #2
0
        public Task <IEnumerable <ColonyDto> > Handle(SyncColonyCommand request, CancellationToken cancellationToken)
        {
            var colonies = request.Colonies ?? new List <ColonyDto>();

            foreach (var appColonies in colonies)
            {
                var localColony = _db.Colony.FirstOrDefault(u => u.Id == appColonies.Id);
                DataModels.Colony.Colony colony = new DataModels.Colony.Colony()
                {
                    Id               = appColonies.Id,
                    IsActive         = appColonies.IsActive,
                    CreatedDate      = appColonies.CreatedDate,
                    CreatedBy        = appColonies.CreatedBy,
                    LastModifiedDate = appColonies.LastModifiedDate,
                    LastModifiedBy   = appColonies.LastModifiedBy,
                    HostId           = appColonies.HostId,
                    AreaId           = appColonies.AreaId,
                    HiveNumber       = appColonies.HiveNumber,
                    ColonyNumber     = appColonies.ColonyNumber,
                    ColonySource     = appColonies.ColonySource,
                    QueenType        = appColonies.QueenType,
                    Markings         = appColonies.Markings,
                    GeneticBreed     = appColonies.GeneticBreed,
                    InstallationType = appColonies.InstallationType,
                    AdditionalInfo   = appColonies.AdditionalInfo,
                    InstallDate      = appColonies.InstallDate,
                    HiveType         = appColonies.HiveType,
                    BroodChamberType = appColonies.BroodChamberType,
                    QueenExclude     = appColonies.QueenExclude
                };

                if (localColony == null)
                {
                    _db.Colony.Add(colony);
                }
                else if (appColonies.LastModifiedDate > localColony.LastModifiedDate)
                {
                    _db.Colony.Remove(localColony);
                    _db.Colony.Add(colony);
                }
                else
                {
                    appColonies.IsActive         = localColony.IsActive;
                    appColonies.CreatedDate      = localColony.CreatedDate;
                    appColonies.CreatedBy        = localColony.CreatedBy;
                    appColonies.LastModifiedDate = localColony.LastModifiedDate;
                    appColonies.LastModifiedBy   = localColony.LastModifiedBy;
                    appColonies.HostId           = localColony.HostId;
                    appColonies.AreaId           = localColony.AreaId;
                    appColonies.HiveNumber       = localColony.HiveNumber;
                    appColonies.ColonyNumber     = localColony.ColonyNumber;
                    appColonies.ColonySource     = localColony.ColonySource;
                    appColonies.QueenType        = localColony.QueenType;
                    appColonies.Markings         = localColony.Markings;
                    appColonies.GeneticBreed     = localColony.GeneticBreed;
                    appColonies.InstallationType = localColony.InstallationType;
                    appColonies.AdditionalInfo   = localColony.AdditionalInfo;
                    appColonies.InstallDate      = localColony.InstallDate;
                    appColonies.HiveType         = localColony.HiveType;
                    appColonies.BroodChamberType = localColony.BroodChamberType;
                    appColonies.QueenExclude     = localColony.QueenExclude;
                }
            }

            var appColonysIDs       = colonies.Select(u => u.Id).ToList();
            var uniqueLocalColonies = _db.Colony.Where(u => !appColonysIDs.Contains(u.Id)).Select(u => new ColonyDto()
            {
                Id               = u.Id,
                IsActive         = u.IsActive,
                CreatedDate      = u.CreatedDate,
                CreatedBy        = u.CreatedBy,
                LastModifiedDate = u.LastModifiedDate,
                LastModifiedBy   = u.LastModifiedBy,
                HostId           = u.HostId,
                AreaId           = u.AreaId,
                HiveNumber       = u.HiveNumber,
                ColonyNumber     = u.ColonyNumber,
                ColonySource     = u.ColonySource,
                QueenType        = u.QueenType,
                Markings         = u.Markings,
                GeneticBreed     = u.GeneticBreed,
                InstallationType = u.InstallationType,
                AdditionalInfo   = u.AdditionalInfo,
                InstallDate      = u.InstallDate,
                HiveType         = u.HiveType,
                BroodChamberType = u.BroodChamberType,
                QueenExclude     = u.QueenExclude
            }).ToList();

            colonies.AddRange(uniqueLocalColonies);
            _db.SaveChanges();

            return(Task.FromResult <IEnumerable <ColonyDto> >(colonies));
        }