Click here to Skip to main content
14,666,385 members
Home » Discussions » C#
   

C#

 
GeneralRe: How to create a method in a User control Pin
Member 147923936-Sep-20 5:37
MemberMember 147923936-Sep-20 5:37 
GeneralRe: How to create a method in a User control Pin
Ralf Meier6-Sep-20 9:34
professionalRalf Meier6-Sep-20 9:34 
GeneralRe: How to create a method in a User control Pin
Member 147923936-Sep-20 16:25
MemberMember 147923936-Sep-20 16:25 
QuestionCannot Create and Return an Instance of a Class Pin
Liagapi3-Sep-20 21:52
MemberLiagapi3-Sep-20 21:52 
AnswerRe: Cannot Create and Return an Instance of a Class Pin
Richard Deeming3-Sep-20 22:05
mveRichard Deeming3-Sep-20 22:05 
GeneralRe: Cannot Create and Return an Instance of a Class Pin
Richard MacCutchan3-Sep-20 22:29
mveRichard MacCutchan3-Sep-20 22:29 
GeneralRe: Cannot Create and Return an Instance of a Class Pin
Richard Deeming4-Sep-20 3:10
mveRichard Deeming4-Sep-20 3:10 
QuestionProper Error handling Pin
Exoskeletor3-Sep-20 12:11
MemberExoskeletor3-Sep-20 12:11 
greetings guys. im building an android application and i have some second thoughts on some error handling case.

I have a method that gets data from the internet by calling this method:

public static string StoredDatesList
        {
            get => Preferences.Get(nameof(StoredDatesList), string.Empty);
            set => Preferences.Set(nameof(StoredDatesList), value);
        }
        public static async Task<string> GetDraws(Uri url, string date)
        {
            Dictionary<string, string> StoredDates = new Dictionary<string, string>();
            StoredDates = JsonConvert.DeserializeObject<Dictionary<string, string>>(StoredDatesList);
            var contents = string.Empty;
            HttpClient client = new HttpClient();

            if (StoredDates != null)
                if (StoredDates.ContainsKey(date))
                {
                    contents = StoredDates[date];
                }
                else
                {
                    var current = Connectivity.NetworkAccess;
                    if (current != NetworkAccess.Internet)
                        return null;
                    client = new HttpClient();
                    contents = await client.GetStringAsync(url);
                    var res2 = JsonConvert.DeserializeObject<RootObject>(contents.ToString());
                    if (180 == res2.content.Count)
                    {
                        StoredDates.Add(date, contents);
                        StoredDatesList = JsonConvert.SerializeObject(StoredDates, Formatting.Indented);
                    }
                }
            else
            {
                StoredDates = new Dictionary<string, string>();

                contents = await client.GetStringAsync(url);
                var res2 = JsonConvert.DeserializeObject<RootObject>(contents.ToString());
                if (180 == res2.content.Count)
                {
                    StoredDates.Add(date, contents);
                    StoredDatesList = JsonConvert.SerializeObject(StoredDates, Formatting.Indented);
                }
            }
            return contents;
        }


the if statement
current != NetworkAccess.Internet)
checks if internet is available, when internet is not available i return null and i check if the data is null and im displaying a message(error, internet is not available etc).
I find this approach very bad and im trying to think how is the proper way to handle this. i cannot show a message to the user from the GetDraws() function.

maybe the correct way for this approach is to have a public variable like bool internetError = false; and to make if false every time i call GetDraws(), make it true if internet is not available and check its state after GetDraws?

Internet connection is not necessary every time GetDraws() is used and that is why im not checking before i called this function for internet connection
AnswerRe: Proper Error handling Pin
Gerry Schmitz3-Sep-20 16:30
mveGerry Schmitz3-Sep-20 16:30 
GeneralRe: Proper Error handling Pin
Exoskeletor3-Sep-20 17:48
MemberExoskeletor3-Sep-20 17:48 
AnswerRe: Proper Error handling Pin
GuyThiebaut4-Sep-20 3:08
professionalGuyThiebaut4-Sep-20 3:08 
GeneralRe: Proper Error handling Pin
Exoskeletor4-Sep-20 3:23
MemberExoskeletor4-Sep-20 3:23 
QuestionCsvHelper, converting $0.00 to 0.00 Pin
jkirkerx3-Sep-20 12:08
professionaljkirkerx3-Sep-20 12:08 
AnswerRe: CsvHelper, converting $0.00 to 0.00 Pin
Gerry Schmitz3-Sep-20 12:55
mveGerry Schmitz3-Sep-20 12:55 
GeneralRe: CsvHelper, converting $0.00 to 0.00 Pin
jkirkerx3-Sep-20 13:20
professionaljkirkerx3-Sep-20 13:20 
AnswerGot It Pin
jkirkerx4-Sep-20 6:34
professionaljkirkerx4-Sep-20 6:34 
GeneralRe: Got It Pin
Mycroft Holmes4-Sep-20 12:15
professionalMycroft Holmes4-Sep-20 12:15 
GeneralRe: Got It Pin
jkirkerx4-Sep-20 13:54
professionaljkirkerx4-Sep-20 13:54 
AnswerI have 3 or 5 of them now, yes they need more work Pin
jkirkerx4-Sep-20 14:08
professionaljkirkerx4-Sep-20 14:08 
GeneralRe: I have 3 or 5 of them now, yes they need more work Pin
Gerry Schmitz5-Sep-20 3:58
mveGerry Schmitz5-Sep-20 3:58 
GeneralRe: I have 3 or 5 of them now, yes they need more work Pin
jkirkerx5-Sep-20 7:24
professionaljkirkerx5-Sep-20 7:24 
QuestionCsvHelper, EBay Order Csv file, not sure how to handle header with quotes and first line of commas Pin
jkirkerx2-Sep-20 13:55
professionaljkirkerx2-Sep-20 13:55 
AnswerRe: CsvHelper, EBay Order Csv file, not sure how to handle header with quotes and first line of commas Pin
OriginalGriff2-Sep-20 22:42
mveOriginalGriff2-Sep-20 22:42 
GeneralRe: CsvHelper, EBay Order Csv file, not sure how to handle header with quotes and first line of commas Pin
jkirkerx3-Sep-20 6:11
professionaljkirkerx3-Sep-20 6:11 
GeneralRe: CsvHelper, EBay Order Csv file, not sure how to handle header with quotes and first line of commas Pin
Dave Kreskowiak3-Sep-20 8:51
mveDave Kreskowiak3-Sep-20 8:51 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.