public async Task <int> CreateAsync(
            int beehiveId,
            QueenBeeType queenType,
            string markingColour,
            string origin,
            string temper)
        {
            var beehive = this.beehiveService.FindById(beehiveId);

            var queen = new QueenBee
            {
                BeehiveId     = beehiveId,
                Type          = queenType,
                MarkingColour = markingColour,
                Origin        = origin,
                Temper        = temper,
            };

            beehive.HasQueen = true;

            await this.db.QueenBees.AddAsync(queen);

            this.db.SaveChangesAsync().GetAwaiter().GetResult();

            await AddQueenInBeehive(beehive, queen);

            return(queen.Id);
        }
        public async Task EditAsync(
            int queenId, QueenBeeType type, string markingColour, string origin, string temper)
        {
            var queen = this.FindById(queenId);

            if (queen == null)
            {
                return;
            }

            queen.Type          = type;
            queen.MarkingColour = markingColour;
            queen.Origin        = origin;
            queen.Temper        = temper;
            queen.ModifiedOn    = DateTime.UtcNow;

            await this.db.SaveChangesAsync();
        }