/// <summary>
        /// This Method is going to include the new information from the specific satellite in the db.
        /// I know it should be also possible to know (and save) which ship has this message been arrived from, then you can have more than one Ship sending.
        /// </summary>
        /// <param name="satelliteData"></param>
        public override async void SaveNewSatelliteData(SatelliteData satelliteData)
        {
            TopSecretSplitItem topSecretSplitItem = CreateDbItemWithSatelliteData(satelliteData);

            var topSecretSplitItemRequest = await _context.TopSecretSplitItems.FindAsync(topSecretSplitItem.id);

            if (topSecretSplitItemRequest != null)
            {
                _context.TopSecretSplitItems.Remove(topSecretSplitItemRequest);
            }
            topSecretSplitItem.createdDate = DateTime.Now;
            _context.TopSecretSplitItems.Add(topSecretSplitItem);

            await _context.SaveChangesAsync();
        }
        public TopSecretSplitItem CreateDbItemWithSatelliteData(SatelliteData satelliteData)
        {
            TopSecretSplitItem topSecretSplitItem = new TopSecretSplitItem();

            topSecretSplitItem.id       = (_rebelSatellites.GetIndexOfSatellite(satelliteData.name) + 1); //Add 1 to this id value to be sure it never reach de 0 value.;
            topSecretSplitItem.name     = satelliteData.name;
            topSecretSplitItem.distance = satelliteData.distance;

            //Merge the
            var result = String.Join(_wordsSeparator, satelliteData.message.ToArray());

            topSecretSplitItem.message = result;

            return(topSecretSplitItem);
        }
        public override async Task <SatelliteData> GetSatelliteDataFromName(string name)
        {
            TopSecretSplitItem topSecretSplitItem = new TopSecretSplitItem();

            topSecretSplitItem.id = (_rebelSatellites.GetIndexOfSatellite(name) + 1); //Add 1 to this id value to be sure it never reach de 0 value.;
            var topSecretSplitItemRequest = await _context.TopSecretSplitItems.FindAsync(topSecretSplitItem.id);

            if (topSecretSplitItemRequest == null)
            {
                throw new Exception("There is not information for satellite" + name);
            }
            List <string> wordsSeparated = new List <string>(topSecretSplitItemRequest.message.Split(_wordsSeparator));

            SatelliteData satelliteData = new SatelliteData(topSecretSplitItemRequest.name, topSecretSplitItemRequest.distance, wordsSeparated);

            return(satelliteData);
        }