Paste string list as class - regex

I was searching for "paste string list as class" like as "Paste XML as Classes".
For clarification, I have a long list of properties name of class & I am going make this as a class.
For example, I have below :
First_Name
Gender
Surname
ErrorCode
ErrorMessage
.....
And I want this below:
public string First_Name { get; set; }
public string Gender { get; set; }
public string Surname { get; set; }
public string ErrorCode { get; set; }
public string ErrorMessage { get; set; }
......

You can use Block Selection trick in Visual Studio. Just hold your ALT key on your keyboard and select the part (by mouse drag) you want to paste your code, then paste it.
This what it looks light when you highlight it:
And here what it looks like when I paste it on highlighted code:
For additional details, you can refer to this link: Visual Studio Tips and Tricks.

I have not found any visual studio solution but I got a regular expression solution (using Notepad++).
The solution is below:
Find all words using "(.*)" and replace the desired one.
Find What: (.*)
Replace with: public string \1 { get; set; }
Like the below picture:

https://www.sublimetext.com/3
Sublime Text is far better than any solution suggested here.

Related

Regex data annotation validation not working

I'm trying to use the "RegularExpression" DataAnnotation validaiton in my model. My problem is even for the valid input I provide for the field containing the validation, the regex doesn't match and it fails.
I try to test the same valid input with the regex in a stand-alone console app and I find it gets through.
My point is, when regex is being used in dataannotation as validation, it considers all input as bad input. What am I missing here?
My regex is for checking comma-seperated email IDs. Here is my model:
public partial class BuildModel
{
public Int64 ConfigID { get; set; }
[Required(ErrorMessage = "Please select a stream!")]
public String Name{ get; set; }
[RegularExpression(#"^(([a-zA-Z0-9_\-\.]+)#((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)(\s*(;|,)\s*|\s*$))", ErrorMessage = "Please enter valid email IDs separated by commas")]
public string EmailIDs { get; set; }
public bool IsActive { get; set; }
}
Note: The "Required" data-annotation validation works just fine. It is just the Regex one, that won't work!
As far as i understand you just have problem within your Regex.
To validate emails separated by comma you can use this regex:
^( *[\w+-.%]+#[\w-.]+\.[A-Za-z]{2,4}( *, *)? *)+$
Check in in here.
You must the jquery.validate.min.js and jquery.validate.unobtrusive.min.js in your page without these libraries required annotation would not works.

Regular Expression, find and replace Visual Studio 2015

I am trying to write a regular expression that replaces a data annotation adding more paramter to it.
For example,
Given this property
[DataMember(Name = "users")]
public List<User> Users { get; set; }
I would like to change it to
[DataMember(Name = "users"), XmlNode("users")]
public List<User> Users { get; set; }
Any idea how to achieve this?
search with this regex:
\[DataMember\(Name = \"(.*)\"\)\]
and replace by this one:
\[DataMember\(Name = "$1"\), XmlNode\("$1"\)\]
regex 101 link

Test regex expression for the model property

This is part of my model
[RegularExpression(#"^([a-z][a-z0-9.-]+)\\((?! +\r?$)[a-z0-9 ]+)\r?$", ErrorMessage = #"Enter the account in domain\account format.")]
[ScaffoldColumn(true)]
[DisplayName("Account Name")]
string Col_DomainName { get; set; }
I want to write a UnitTest where I can test this. How do I do that? I am using NUnit.
Thanks!

use regex validator to ensure a string contains particular substring

I want to use a regex validator to ensure that a certain string variable contains the substring "www.youtube.com/watch?v=", how would I do this?
[RegularExpression()]
[Required(ErrorMessage = "Youtube link is Required")]
[StringLength(100, ErrorMessage="Youtube link cannot exceed 50 characters")]
public string YoutubeLink { get; set; }
if (YoutubeLink.Contains("www.youtube.com/watch?v="))
{
//...
}
http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx
To use the RegularExpression attribute, you must specify the regex to use :
[RegularExpression("www\\.youtube\\.com/watch\\?v=", ErrorMessage = "Link is incorrect")]
public string YoutubeLink { get; set; }
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx
I think what you might want is to check for any type of URL beginning. In that case, you would use #"^(http://)?(www\.)?youtube\.com/watch\?v=" as the regex string.
See an example of what this would match
Maybe much easier to use something like (Python):
ytlink = 'www.youtube.com/watch?v='
if(ytlink in yourfrase):
doYourLogic()
else:
smthElse()
Please correct me if I understood your question wrong.

How to model structures such as family trees in document databases

I have been looking into document databases, specifically RavenDb, and all the examples are clear and understandable. I just can't find any example where we do not know beforehand how many levels a given structure has. As an example how would you persist a family tree given the following class:
public class Person{
public string Name {get;set;}
public Person Parent {get;set;}
public Person[] Children {get;set;}
}
In most examples I have seen we search for the aggregate root and make into a document. It is just not so obvious here what the aggregate root and boundary is.
Ayende has just posted a blog post that answers this.
I guess for RavenDb, you'd have to keep the Ids in your object:
public class Person {
public string Name { get; set; }
public string ParentId { get; set; }
public string[] ChildrenIds { get; set; }
}
Check this page, especially at the bottom, for more info: http://ravendb.net/documentation/docs-document-design