Skip to content

Instantly share code, notes, and snippets.

@Dzoukr
Forked from rarous/1.cs
Last active February 16, 2021 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Dzoukr/dd9f54974dd4e3fddac5ec2fb976db01 to your computer and use it in GitHub Desktop.
Save Dzoukr/dd9f54974dd4e3fddac5ec2fb976db01 to your computer and use it in GitHub Desktop.
Imperative vs Declarative
static Maybe<string> TryGetErrorMessage(XElement html)
{
return html.GetElementsByClassName("ErrorMessage").MaybeFirst().
Where(x => !x.Attributes("style").Any()
|| !x.Attribute("style").Value.Contains("visibility:hidden")).
Or(html.GetElementsByClassName("ErrorText").MaybeFirst()).
Select(x => x.Value.Trim());
}
static string TryGetErrorMessage(XElement html)
{
var errMessage = html.GetElementsByClassName("ErrorMessage").FirstOrDefault();
var errText = html.GetElementsByClassName("ErrorText").FirstOrDefault();
var errorMessage = String.Empty;
if (errMessage != null && (!errMessage.Attributes("style").Any() || (errMessage.Attributes("style").Any() && errMessage.Attributes("style").First().Value != "visibility:hidden;")))
errorMessage = errMessage.Value.Trim();
if (errText != null)
errorMessage = errText.Value.Trim();
return errorMessage;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment