AdvancedLauncher.SDK.Model.Web.DatabaseWebProvider.GetActualGuildAsync C# (CSharp) Method

GetActualGuildAsync() public method

Asynchronously starts guild obtaining
public GetActualGuildAsync ( Server server, string guildName, bool isDetailed, int actualInterval ) : void
server AdvancedLauncher.SDK.Model.Entity.Server Guild server
guildName string Guild name
isDetailed bool Shoul it be detailed data (like digimon size, real name, etc)
actualInterval int Interval of actual data in days
return void
        public override void GetActualGuildAsync(Server server, string guildName, bool isDetailed, int actualInterval)
        {
            bool fetchCurrent = false;

            using (IDatabaseContext context = DatabaseManager.CreateContext()) {
                Guild storedGuild = context.FindGuild(server, guildName);
                if (storedGuild != null && !(isDetailed && !storedGuild.IsDetailed) && storedGuild.UpdateTime != null) {
                    TimeSpan timeDiff = (TimeSpan)(DateTime.Now - storedGuild.UpdateTime);
                    if (timeDiff.Days < actualInterval) {
                        fetchCurrent = true;
                    }
                }
            }
            if (fetchCurrent) {
                Task.Factory.StartNew(() => {
                    using (IDatabaseContext context = DatabaseManager.CreateContext()) {
                        OnStarted();
                        OnStatusChanged(DMODownloadStatusCode.GETTING_GUILD, guildName, 0, 50);
                        Guild storedGuild = context.FetchGuild(server, guildName);
                        OnCompleted(DMODownloadResultCode.OK, storedGuild);
                    }
                });
                return;
            }
            GetGuildAsync(server, guildName, isDetailed);
        }