00:00:03.635 --> 00:00:04.655 Hmm.
00:00:09.815 --> 00:00:11.495 And very volunteer. I'll just.
00:00:13.665 --> 00:00:15.295 Anybody feel like sharing their screen?
00:00:16.545 --> 00:00:20.874 Yeah, I I have a question because I've had two of these
00:00:20.874 --> 00:00:25.512 and I'm blocked on the same thing on both, which is their a
00:00:25.512 --> 00:00:29.145 new schema change that introduces a new table.
00:00:29.915 --> 00:00:34.915 And have a really difficult time getting the test run, so I will
00:00:34.915 --> 00:00:35.915 share screen.
00:00:37.035 --> 00:00:37.725 And.
00:00:39.275 --> 00:00:40.625 Hopefully you can see my screen.
00:00:42.205 --> 00:00:42.495 Umm.
00:00:43.245 --> 00:00:49.786 OK. So the one for this schema change. This is for region. It's
00:00:49.786 --> 00:00:52.035 to create a new table.
00:00:52.835 --> 00:00:56.693 Called user products so it's under contacts, user, user,
00:00:56.693 --> 00:00:57.235 product.
00:00:57.895 --> 00:00:59.015 And.
00:01:00.225 --> 00:01:05.124 In the mocking file to Ms FCR contacts got this little section
00:01:05.124 --> 00:01:09.945 here, which just kind of going off of what I could see. Other
00:01:09.945 --> 00:01:14.378 examples I've tried a few different parameters there and
00:01:14.378 --> 00:01:19.199 just from a chat. From the chat I understand that may have to
00:01:19.199 --> 00:01:23.321 extend this method here so create for example a user
00:01:23.321 --> 00:01:27.365 product standard workflow test dot extended dot CS.
00:01:29.235 --> 00:01:29.895 And.
00:01:31.845 --> 00:01:34.835 Yeah, that's kind of where where I'm stuck the test.
00:01:38.965 --> 00:01:40.315 She had this stuff already.
00:01:43.975 --> 00:01:47.785 Basically, get two out of eight that are successful.
00:01:57.265 --> 00:02:01.135 So the ones that are in this class spec here.
00:02:03.075 --> 00:02:05.881 I fully admit I don't know what I'm doing in terms of what
00:02:05.881 --> 00:02:07.165 should actually be in here.
00:02:12.545 --> 00:02:16.475 So it should be the. Uh yeah, it'll be 2 out of 10.
00:02:18.715 --> 00:02:22.380 Succeed the check exists and I forget what the other one was.
00:02:22.380 --> 00:02:23.385 Yeah, the delete.
00:02:25.965 --> 00:02:26.315 OK.
00:02:28.195 --> 00:02:28.675 Umm.
00:02:30.835 --> 00:02:34.391 So I'm guessing that the nowhere France exception is probably
00:02:34.391 --> 00:02:37.832 accessing one of the tables that doesn't exist. So have you
00:02:37.832 --> 00:02:41.331 clicked on one of those failing tests and looked at the call
00:02:41.331 --> 00:02:41.675 stack?
00:02:42.445 --> 00:02:44.645 And the test explorer that we were just looking at.
00:02:46.135 --> 00:02:50.548 Umm I had a debugging session, maybe that's easier to show on
00:02:50.548 --> 00:02:54.605 other project which shows which does not want to appear.
00:02:55.665 --> 00:02:58.642 If you can just pull the test explorer, it should show a
00:02:58.642 --> 00:02:59.165 stack. Uh.
00:03:00.205 --> 00:03:03.717 A stack trace for that null reference. Just click on any one
00:03:03.405 --> 00:03:03.715 Right.
00:03:03.717 --> 00:03:04.235 of those.
00:03:05.225 --> 00:03:10.698 OK. And the top level is select first full user product and map
00:03:10.698 --> 00:03:15.915 to user product model. OK. So let's click on that first line
00:03:15.915 --> 00:03:16.685 up there.
00:03:17.845 --> 00:03:18.395 This one here.
00:03:18.745 --> 00:03:18.905 Yep.
00:03:19.045 --> 00:03:20.535 From my cursors OK.
00:03:26.395 --> 00:03:27.235 One user code.
00:03:26.675 --> 00:03:28.375 And it's probably going into the.
00:03:28.995 --> 00:03:31.495 Create it so it's. Ohh Yep, I hear James.
00:03:29.235 --> 00:03:29.525 Hello.
00:03:32.195 --> 00:03:33.955 Oh, there you go. It was on the wrong Mike.
00:03:35.015 --> 00:03:38.419 Will you pin that test explorer in your bottom section? Like
00:03:38.419 --> 00:03:41.265 where your outlook outputting and other stuff are?
00:03:42.945 --> 00:03:43.395 Yeah.
00:03:45.295 --> 00:03:46.745 Just drag it into the space.
00:03:45.605 --> 00:03:45.975 And.
00:03:51.185 --> 00:03:51.975 I just you.
00:03:53.205 --> 00:03:57.195 He made it a tab in the text editor section.
00:03:55.415 --> 00:03:55.755 OK.
00:03:56.145 --> 00:03:59.515 So go to the top left and you will see the test Explorer tab
00:03:57.035 --> 00:03:57.835 Yeah, it's.
00:03:59.515 --> 00:04:01.505 title. Drag the tab title top left.
00:04:02.875 --> 00:04:04.885 Stopwatch. Ohh yeah OK.
00:04:04.845 --> 00:04:08.992 Drag that down over by where the output area is at the bottom and
00:04:08.992 --> 00:04:10.815 merge it into that pain area.
00:04:12.765 --> 00:04:13.005 OK.
00:04:14.065 --> 00:04:15.645 Pain in area is a.
00:04:14.445 --> 00:04:16.165 You'll see that you'll get a. You'll get a.
00:04:17.015 --> 00:04:19.957 That works too, but there's also normally when you're doing those
00:04:19.957 --> 00:04:22.765 things in, you'll have a thing that hovers in the middle of it
00:04:22.765 --> 00:04:25.485 that's got like A plus sign of different spaces to merge in.
00:04:24.105 --> 00:04:24.775 Ohh yeah.
00:04:27.695 --> 00:04:31.138 OK, is this is this? Well this worked up or what we're doing,
00:04:29.975 --> 00:04:32.788 Yes, yeah. Now you can keep it open and you want to keep
00:04:30.805 --> 00:04:31.255 Asking.
00:04:31.138 --> 00:04:31.305 OK.
00:04:32.788 --> 00:04:35.650 dragging it around trying to make it hide other stuff and
00:04:35.650 --> 00:04:36.095 whatever.
00:04:38.115 --> 00:04:41.002 So right now, the first thing you're getting here is in the
00:04:41.002 --> 00:04:44.131 mapper for the user product. It says to to select the first full
00:04:44.131 --> 00:04:46.971 product and or user product and pull the data for it. It's
00:04:46.971 --> 00:04:49.907 unable to do that because the initialization hasn't occurred
00:04:49.907 --> 00:04:52.891 correctly with all the tables that are necessary. Is that the
00:04:52.891 --> 00:04:55.875 same stack trace that you have on all of those failing tests?
00:04:59.415 --> 00:05:01.501 If you click through each one, do any of them say anything
00:05:01.501 --> 00:05:01.855 different?
00:05:03.425 --> 00:05:04.905 Umm, I think.
00:05:05.925 --> 00:05:09.550 They all say select first user first full user product. So
00:05:09.550 --> 00:05:10.165 let's see.
00:05:13.455 --> 00:05:16.275 I think that almost different select list use your product.
00:05:17.125 --> 00:05:18.445 With that one so.
00:05:17.785 --> 00:05:18.615 And the same diff.
00:05:19.945 --> 00:05:21.950 Looking for anything that basically not be part of the
00:05:21.950 --> 00:05:22.205 mapper.
00:05:23.985 --> 00:05:27.749 OK. So then it's harder to debug it from this direction because
00:05:27.749 --> 00:05:31.337 The thing is, is using Lync expressions and those are harder
00:05:31.337 --> 00:05:33.925 to figure out which one of them is failing.
00:05:35.425 --> 00:05:38.475 What I would do is like go to the create one so double click
00:05:38.475 --> 00:05:39.025 the create.
00:05:40.765 --> 00:05:40.985 OK.
00:05:42.045 --> 00:05:45.395 And that should show you where the test is in the code. Now in
00:05:45.395 --> 00:05:46.565 the test here you see.
00:05:47.045 --> 00:05:51.895 Umm check exists. OK, so Scroll down to where the create one is.
00:05:52.395 --> 00:05:53.925 Oh yeah. Great.
00:05:59.795 --> 00:06:02.778 There. OK, so the test there is actually running four separate
00:06:02.778 --> 00:06:05.808 tests, the one that we're gonna probably care about is the with
00:06:05.808 --> 00:06:08.791 valid data, and we don't want to mess with trying to debug the
00:06:08.791 --> 00:06:11.916 other three at the same time. So in the moment, comment out those
00:06:11.916 --> 00:06:12.485 other three.
00:06:13.205 --> 00:06:16.735 Uh from 139 to 141 before the end of that line.
00:06:13.705 --> 00:06:14.065 OK.
00:06:19.295 --> 00:06:20.955 From 1:33 to 1:00.
00:06:21.135 --> 00:06:24.905 Sorry, 139 to 141 before the end of that line.
00:06:25.255 --> 00:06:25.635 Gotcha.
00:06:26.495 --> 00:06:28.748 Because you're inside of a task dot when on is trying to pass
00:06:28.748 --> 00:06:29.185 them all in.
00:06:30.165 --> 00:06:33.541 So now you need. You need your closing parentheses, which is
00:06:33.541 --> 00:06:37.138 before the, the OR at the end of 141. You either have to take it
00:06:37.138 --> 00:06:40.625 on the line, you only need to use a star or whatever to do it.
00:06:41.335 --> 00:06:41.975 A star slice.
00:06:41.495 --> 00:06:43.805 Yeah, that works. Yeah, I'm just. Yeah, that works too.
00:06:42.935 --> 00:06:43.625 Yeah, that works.
00:06:45.525 --> 00:06:48.259 OK, now if you debug this test, it's only gonna run through that
00:06:48.259 --> 00:06:49.185 one actual test piece.
00:06:50.565 --> 00:06:53.849 On it and we can go through and figure out step by step which
00:06:53.849 --> 00:06:55.915 part of it is put a breakpoint on 137.
00:07:02.055 --> 00:07:04.155 Yeah. And then starts the debug on it.
00:07:10.665 --> 00:07:12.965 Do not show this message again and no.
00:07:16.055 --> 00:07:16.375 Uh.
00:07:17.495 --> 00:07:18.195 Or something.
00:07:18.535 --> 00:07:21.907 So there's a comma at the end 138 and it's it's it's thinking
00:07:21.907 --> 00:07:25.007 you need to give another argument and you need to remove
00:07:25.007 --> 00:07:26.965 the comma of 138. We're coming out.
00:07:25.065 --> 00:07:27.595 Oh yeah, I I see it now.
00:07:27.965 --> 00:07:28.295 Yeah.
00:07:35.715 --> 00:07:37.305 Let's go ahead and try the debug now.
00:08:12.505 --> 00:08:13.955 I guess it was just taking a minute.
00:08:14.645 --> 00:08:16.315 Probably had to finish building it and then.
00:08:17.075 --> 00:08:18.205 Then do the initialization.
00:08:25.695 --> 00:08:28.085 OK, so now we're going to step in, which is FF11.
00:08:34.575 --> 00:08:37.412 OK, so I've I've been getting these questions from different
00:08:37.412 --> 00:08:40.296 people about different stuff. I'm gonna try to answer some of
00:08:40.296 --> 00:08:41.645 this stuff as I'm going here.
00:08:42.895 --> 00:08:45.967 The context profile name, which is that argument that you see
00:08:45.967 --> 00:08:48.791 like an all the functions everywhere that is part of the
00:08:48.791 --> 00:08:51.813 testing system, so that it will isolate out things that have
00:08:51.813 --> 00:08:54.934 been mocked into memory on those individual containers for the
00:08:54.934 --> 00:08:57.957 registry loader and dynamic injection. So when you're making
00:08:57.957 --> 00:09:01.078 a fake database per test, you're doing it to an isolation with
00:09:01.078 --> 00:09:04.051 that particular context profile name as the key in a memory
00:09:04.051 --> 00:09:07.271 Dictionary of which one to look up in production whenever you're
00:09:07.271 --> 00:09:10.442 actually running anything like as an actual website, that value
00:09:10.442 --> 00:09:13.464 is always null, which means that there's no secondary siloed
00:09:13.464 --> 00:09:14.505 stuff. It's all just.
00:09:14.635 --> 00:09:18.017 Whatever goes into the regular memory and then when you're
00:09:18.017 --> 00:09:21.513 running tests, each individual test gets its own key so that
00:09:21.513 --> 00:09:25.239 they can't cross each other over on which ones doing what in the
00:09:25.239 --> 00:09:28.965 recorded memory of the stuff. So that's why that context profile
00:09:28.965 --> 00:09:32.576 name is there everywhere, and this Gen context profile name is
00:09:32.576 --> 00:09:36.187 designed to take the type of the class that you're in. Because
00:09:36.187 --> 00:09:39.970 this is an abstract base so that the whichever one you're running
00:09:39.970 --> 00:09:43.466 it into user product versus user versus product versus store
00:09:43.466 --> 00:09:44.785 versus brand, whatever.
00:09:45.645 --> 00:09:49.177 The test name or the the context profile name will include the
00:09:49.177 --> 00:09:52.710 name of that parent class that it actually is to help keep the
00:09:52.710 --> 00:09:56.075 isolation going, and so that it's dynamically putting it in
00:09:56.075 --> 00:09:59.159 there without me having to manually sign that on every
00:09:59.159 --> 00:10:00.505 single individual class.
00:10:01.775 --> 00:10:04.749 So once you have that context profile name, it's gonna go
00:10:04.749 --> 00:10:07.775 create a child container and it's gonna associate that key
00:10:07.775 --> 00:10:10.903 with that child container on it so that everything that gets
00:10:10.903 --> 00:10:13.775 recorded into that child container and then whenever it
00:10:13.775 --> 00:10:16.955 goes, it requested for like a registry loader wrapper dot get
00:10:16.955 --> 00:10:18.955 me the workflows controller or get me.
00:10:19.015 --> 00:10:23.075 A database or get me or whatever it's going to pull it out of the
00:10:23.075 --> 00:10:26.950 memory for that particular the keyed child container on it. So
00:10:26.950 --> 00:10:28.365 that's what that's for.
00:10:29.665 --> 00:10:32.253 So you'll have the using there with the child container. It's
00:10:32.253 --> 00:10:34.716 gonna do it up and it does the you know root container. It
00:10:34.716 --> 00:10:37.304 creates a child container. If you Scroll down a smidge to the
00:10:37.304 --> 00:10:39.725 bottom of the test where you can see the after the using.
00:10:40.745 --> 00:10:43.249 Closes. You see that we remove the override container. That's a
00:10:43.249 --> 00:10:45.714 memory cleanup so that we don't keep just adding more and more
00:10:45.714 --> 00:10:47.475 stuff to memory while the tests are running.
00:10:49.305 --> 00:10:49.685 On it.
00:10:50.685 --> 00:10:53.468 The inside the using here the first step is usually the
00:10:53.468 --> 00:10:56.350 mocking setup, which is to get the mocking setup with the
00:10:56.350 --> 00:10:59.630 existing data for this table and expanded tables. There's another
00:10:59.630 --> 00:11:02.562 version that just that table stuff for the more simplified
00:11:02.562 --> 00:11:05.743 test that don't need all those extra tables so that we can save
00:11:05.743 --> 00:11:07.085 on performance of the test.
00:11:08.805 --> 00:11:12.293 By default, whenever you call the save function so like save
00:11:12.293 --> 00:11:15.723 unit of work or save changes or the async versions of those
00:11:15.723 --> 00:11:19.326 calls on the context that's been generated by this, it doesn't
00:11:19.326 --> 00:11:22.642 know to provide it a successful save result. Which entity
00:11:22.642 --> 00:11:26.130 framework would normally do so in cases where you're doing a
00:11:26.130 --> 00:11:29.104 create and you're going to record that you saved it
00:11:29.104 --> 00:11:32.763 successfully, you need to tell the mock database to do that. So
00:11:32.763 --> 00:11:35.165 you think save changes result equal to 1.
00:11:36.005 --> 00:11:39.005 The next thing you're doing is you're calling do setup, which
00:11:39.005 --> 00:11:41.908 now that you know you've told it, the blocking setup, which
00:11:41.908 --> 00:11:45.102 tables to load the do mocking do set up and the do mocking set up
00:11:45.102 --> 00:11:47.908 to actually exercise those things and actually tell it to
00:11:47.908 --> 00:11:50.763 build those tables into memory and allocating all the mock
00:11:50.763 --> 00:11:53.570 functionality against those things so that when you add a
00:11:53.570 --> 00:11:56.715 record to a table or you modify a record, or you do any of those
00:11:56.715 --> 00:11:59.522 kind of stuff, it hooks that would normally exist inside.
00:11:59.522 --> 00:12:02.425 Entity framework won't exist here. So we're faking out some
00:12:02.425 --> 00:12:05.377 of that data and we're making it so that we can test did the
00:12:05.377 --> 00:12:06.635 thing actually get called.
00:12:07.135 --> 00:12:10.438 On that stuff. So like that, verify there on line 570 where
00:12:10.438 --> 00:12:13.962 it says was save changes async called at least once. That's the
00:12:13.962 --> 00:12:17.376 box that system verifying that we did something that we would
00:12:17.376 --> 00:12:20.900 have normally done with actual entity framework and right above
00:12:20.900 --> 00:12:24.148 that line on 569 you can see that it takes the entity type
00:12:24.148 --> 00:12:27.287 for the main mock set and verifies. Did we add an entity
00:12:27.287 --> 00:12:30.205 to that at least once or actually it just says once?
00:12:31.615 --> 00:12:34.734 Beer. So that's where that kind of stuff is. And then we assert
00:12:34.734 --> 00:12:37.804 that we got the data back from it from on the get call that it
00:12:37.804 --> 00:12:40.776 wasn't null and it wasn't the appropriate type, meaning that
00:12:40.776 --> 00:12:43.700 it was able to then recall that data after saving it in the
00:12:43.700 --> 00:12:46.721 data. And then there's a thing that lets us do overwriting it
00:12:46.721 --> 00:12:49.597 for additional checks to do that might be specific to that
00:12:49.597 --> 00:12:52.472 particular table that we're working on for the creates. So
00:12:52.472 --> 00:12:54.665 if you added more data to the creating of a.
00:12:55.605 --> 00:12:59.115 Creating of the model that hook online 553.
00:12:59.665 --> 00:13:02.988 And then any overrides you would put into that is that something
00:13:02.988 --> 00:13:06.056 you would probably go testing with the override that you're
00:13:06.056 --> 00:13:06.925 getting from 573.
00:13:09.085 --> 00:13:12.079 In between that stuff, there is the actual things to do to
00:13:12.079 --> 00:13:15.174 finish setting up the workflow to be uploaded and running in
00:13:15.174 --> 00:13:18.270 memory and to then physically exercise the action that we're
00:13:18.270 --> 00:13:21.213 trying to take with this. So we'll see here on 558, we're
00:13:21.213 --> 00:13:24.258 taking our workflow, we're calling create with it and we're
00:13:24.258 --> 00:13:27.303 getting the result back, which is going to be a self action
00:13:27.303 --> 00:13:30.652 response that we verify the self action response pass. It doesn't
00:13:30.652 --> 00:13:32.175 have any error messages in it.
00:13:33.275 --> 00:13:36.269 We have an A specific handler here for CART model because CART
00:13:36.269 --> 00:13:39.359 has to do a specific thing with their get calls. So we basically
00:13:39.359 --> 00:13:42.401 tell it to ignore that and to do it what it does instead, which
00:13:42.401 --> 00:13:45.537 is in the CART workflow. It does a get async and it's supposed to
00:13:45.537 --> 00:13:48.532 throw an exception for invalid operation. So that's a specific
00:13:48.532 --> 00:13:51.289 override just for CART model there and then everyone else
00:13:51.289 --> 00:13:52.905 will basically not be doing that.
00:13:54.185 --> 00:13:57.450 So I 567, we're calling to get after we called the create, we
00:13:57.450 --> 00:14:00.873 should pull that record that we created back out and verify more
00:14:00.873 --> 00:14:04.085 information on it and then we use the gift box set to verify
00:14:04.085 --> 00:14:07.455 that we added that we call the save changes. We asserted that's
00:14:07.455 --> 00:14:10.668 not null and then we do our other assertions in the override
00:14:10.668 --> 00:14:13.722 stuff. All of the tests in our system are working off the
00:14:13.722 --> 00:14:16.935 triple-A principle which is arrange, act, assert you arrange
00:14:16.935 --> 00:14:20.200 and you build up the thing that you need to do for setting up
00:14:20.200 --> 00:14:22.675 your mocking setting up your things in memory.
00:14:23.015 --> 00:14:26.374 You act with the result, which was to actually call a function
00:14:26.374 --> 00:14:29.414 and say this is the thing I'm actually trying to test by
00:14:29.414 --> 00:14:32.454 exercising this particular function, or in some cases it
00:14:32.454 --> 00:14:35.760 may be a series of steps that have to go one after the other,
00:14:35.760 --> 00:14:38.906 but that's the act part, and then the assert is after I've
00:14:38.906 --> 00:14:42.053 gotten everything back, I verified that it, either through
00:14:42.053 --> 00:14:45.306 the exception I expected it to throw that it or that I added
00:14:45.306 --> 00:14:48.399 stuff to into memory in my database and changed my state,
00:14:48.399 --> 00:14:51.812 or some of the things got called or whatever, and then verified
00:14:51.812 --> 00:14:53.625 that my data points were correct.
00:14:53.715 --> 00:14:57.079 And whatever I tried to modify, that's what that's the bulk of
00:14:57.079 --> 00:15:00.444 what these tests do is just like this, although there might be
00:15:00.444 --> 00:15:03.701 other individual steps inside them that are more specific to
00:15:03.701 --> 00:15:06.105 what they're trying to do, like deleting or.
00:15:07.585 --> 00:15:10.878 Updating a record or calling the upsert function. All those
00:15:10.878 --> 00:15:14.116 things, they have their own specific inner parts, but it's
00:15:14.116 --> 00:15:17.465 all still AAA, arrange, act, assert on how this stuff works.
00:15:19.105 --> 00:15:21.823 So you can see this stuff all over the place with with our
00:15:21.823 --> 00:15:24.587 unit tests. In this particular case, what we wanna do is we
00:15:24.587 --> 00:15:27.581 know that you've just overridden the git mocking setup. Existing
00:15:27.581 --> 00:15:30.576 data for this table and expanded tables function so that you can
00:15:30.576 --> 00:15:33.247 start filling in additional tables to put in. And what we
00:15:33.247 --> 00:15:36.150 have to do is figure out which tables is it failing on to load
00:15:36.150 --> 00:15:39.006 in here. Unfortunately, right now I think we'll have to do is
00:15:39.006 --> 00:15:42.000 physically continue until we get all the way to the thing, but I
00:15:42.000 --> 00:15:44.764 wanted to explain all those parts. I know that a lot of you
00:15:44.764 --> 00:15:47.621 guys are new and haven't seen this before and some of you who
00:15:47.621 --> 00:15:49.095 have even been here for a while.
00:15:49.255 --> 00:15:51.505 May not have heard this explanation specifically before.
00:15:52.135 --> 00:15:54.703 Umm, So what we're gonna do is we're first before we hit
00:15:54.703 --> 00:15:57.407 continue, we're going to go to your exception Settings tab,
00:15:57.407 --> 00:15:59.795 which is in the bottom right section of your window.
00:16:00.495 --> 00:16:02.445 Umm, next to call stack and break points?
00:16:04.955 --> 00:16:05.325 OK.
00:16:06.355 --> 00:16:09.524 And then what I normally do in this is I uncheck everything and
00:16:09.524 --> 00:16:12.397 then make sure that common language runtime exceptions is
00:16:12.397 --> 00:16:15.467 shows a check mark and not the filled box so that it stops on
00:16:15.467 --> 00:16:18.438 everything. So the on the first one you could just check it
00:16:18.438 --> 00:16:21.311 twice to make it go away and then the same thing for Java
00:16:21.311 --> 00:16:24.233 exceptions. JavaScript is runtime exceptions. Just do that
00:16:24.233 --> 00:16:26.115 until all those other ones are clear.
00:16:27.125 --> 00:16:28.925 OK. We just want the Clr ones.
00:16:27.695 --> 00:16:28.405 And and then.
00:16:29.035 --> 00:16:32.353 Yeah. We just want the Clr ones. So you'll check that once and it
00:16:32.353 --> 00:16:35.218 will turn into a check mark, which means that everything
00:16:35.218 --> 00:16:38.335 underneath it is all valid and going to stop on it. So now if
00:16:38.335 --> 00:16:41.401 we hit F5 to continue, it will stop on the exception when it
00:16:41.401 --> 00:16:42.005 comes to it.
00:16:46.695 --> 00:16:49.030 Whereas it might not have because it was a partial load we
00:16:49.030 --> 00:16:51.207 so we don't know if it was in there or not or with the
00:16:51.207 --> 00:16:53.345 exception it was gonna throw. But we wanna let it go.
00:16:54.455 --> 00:16:56.768 Just going to do some stuff. It's building on the stuff in
00:16:56.768 --> 00:16:59.277 memory and it's going to start exercising the actual create and
00:16:59.277 --> 00:17:01.865 then we get down into here where this is probably the get call to
00:17:01.865 --> 00:17:02.375 pull it back.
00:17:03.915 --> 00:17:07.480 That's happening later. If we look at the call stack now, we
00:17:07.480 --> 00:17:11.045 should be able to see that we're in like the get call there.
00:17:09.985 --> 00:17:14.312 But you can actually see exactly what it says. Uh model Mapper
00:17:14.312 --> 00:17:18.571 for user product dot prebuilt user product SQL selector, full
00:17:18.571 --> 00:17:20.495 dot get return null so that.
00:17:21.915 --> 00:17:24.145 Sequel selector was null apparently.
00:17:25.065 --> 00:17:28.002 And then and I think that's Cline 187 is where we're using
00:17:28.002 --> 00:17:31.088 that. And then we're doing a dot compile on it and apparently
00:17:31.088 --> 00:17:34.125 it's null. So I think that's what the problem is, is some of
00:17:32.425 --> 00:17:32.765 OK.
00:17:34.125 --> 00:17:36.465 the the mapper didn't get initialized I guess.
00:17:34.205 --> 00:17:34.615 So.
00:17:36.565 --> 00:17:39.495 Yeah, which which is odd because the mapper has an initialized
00:17:39.495 --> 00:17:42.564 call right before this line that verifies if it was null, then it
00:17:42.564 --> 00:17:43.495 would initialize it.
00:17:44.785 --> 00:17:48.502 So if we mouse over the prebuilt user product SQL Selector full
00:17:48.502 --> 00:17:52.162 Online 182, I wanna see if it has a value. If it actually says
00:17:52.162 --> 00:17:52.685 no there.
00:17:55.435 --> 00:17:56.305 It does say no.
00:17:55.635 --> 00:17:58.967 It says no, So what should have happened is that initialized
00:17:58.967 --> 00:18:01.863 call is not even async or anything. It just runs. It
00:18:01.863 --> 00:18:05.141 should have initialized it before this point. The fact that
00:18:05.141 --> 00:18:08.529 it didn't something went wrong and I don't know what click on
00:18:08.529 --> 00:18:12.025 initialize and on 182 and then it F-12 it so that you can go to
00:18:12.025 --> 00:18:12.845 its definition.
00:18:13.745 --> 00:18:17.296 If you don't have that hockey, then just like right click and
00:18:17.296 --> 00:18:20.848 go to definition. There we go. What we're gonna do is look at
00:18:20.848 --> 00:18:23.025 the contacts section starting at 286.
00:18:25.995 --> 00:18:29.206 Open that bad boy up and we're looking here for the model
00:18:29.206 --> 00:18:30.535 Mapper for user product.
00:18:32.545 --> 00:18:34.979 And if it's in here, I see product type but not product,
00:18:34.979 --> 00:18:37.628 which means that this file is not updated since the last time
00:18:37.628 --> 00:18:40.276 the T4's or since that change occurred and we need to run the
00:18:40.276 --> 00:18:41.985 T4 again so that it will initialize it.
00:18:43.015 --> 00:18:44.375 That's the problem that we're having here.
00:18:43.195 --> 00:18:43.535 OK.
00:18:46.285 --> 00:18:48.939 We need to stop debugging and then we need to go run the
00:18:48.939 --> 00:18:51.035 mapping T4 so that it will update this file.
00:18:52.955 --> 00:18:55.607 And to think this is on a newer version, so it's just got the
00:18:55.607 --> 00:18:56.035 single T4.
00:18:57.745 --> 00:18:59.305 Yeah. So if you'll scroll back up to the top.
00:18:58.295 --> 00:19:00.105 Ohh all all the way at the top level.
00:19:00.465 --> 00:19:01.755 Yep, the data Model 1.
00:19:00.715 --> 00:19:01.025 Yeah.
00:19:01.115 --> 00:19:01.345 OK.
00:19:01.665 --> 00:19:04.006 And then the data model. There you run it once and then that
00:19:04.006 --> 00:19:05.235 takes here most of the back end.
00:19:06.975 --> 00:19:10.559 And then after you run this and this is just a pro tip for
00:19:10.559 --> 00:19:14.448 everybody, something that I do anytime I run an ET4 before I do
00:19:14.448 --> 00:19:18.276 anything else, I will go look at the personally, I used the VS
00:19:18.276 --> 00:19:22.286 code DIFF viewer, but any visual or otherwise git diff viewer you
00:19:22.286 --> 00:19:26.174 prefer to use you tortoise git or or psychotic and you read the
00:19:26.174 --> 00:19:28.605 different entirely in the command line.
00:19:30.565 --> 00:19:34.185 Just audit what it output and make sure that like in this case
00:19:34.185 --> 00:19:37.747 we're expecting to see that it added the user product mapping
00:19:37.747 --> 00:19:41.309 initializer to that file. If we didn't see that, then there's
00:19:41.309 --> 00:19:44.872 probably something else going wrong, but generally speaking I
00:19:44.872 --> 00:19:48.434 wanna go and make sure that not only did it generate what you
00:19:48.434 --> 00:19:51.939 expected it to generate, but it didn't generate anything you
00:19:51.939 --> 00:19:55.502 didn't expect it to generate. Typically nowadays most of that
00:19:55.502 --> 00:19:58.375 problem is gone and the T4 are relatively stable.
00:19:59.045 --> 00:20:01.851 But on some older projects, especially like 2020 and
00:20:01.851 --> 00:20:04.921 earlier, if anybody works on projects that old, there was
00:20:04.921 --> 00:20:08.204 there were relatively frequently issues where it would. There
00:20:08.204 --> 00:20:11.275 were things that would get modified that you just have to
00:20:11.275 --> 00:20:14.345 know to change back. And if you're ever not sure, you can
00:20:14.345 --> 00:20:15.775 just feel free to ask. But.
00:20:17.555 --> 00:20:19.945 It looks like it didn't generate anything.
00:20:18.735 --> 00:20:22.043 So on your source control here, if you hit the little refreshed
00:20:22.043 --> 00:20:22.715 button on it.
00:20:25.305 --> 00:20:28.555 At the very top right above the the commit section, yeah.
00:20:31.145 --> 00:20:32.355 See if it picks up the change.
00:20:39.615 --> 00:20:44.425 I don't see one. Fees are no know what I did to.
00:20:45.095 --> 00:20:50.014 Can we look at your can we look at your user product dot CS like
00:20:45.695 --> 00:20:47.365 OHS big that ones mine.
00:20:48.235 --> 00:20:48.645 Sorry.
00:20:50.014 --> 00:20:51.755 the actual entity file?
00:20:52.455 --> 00:20:53.185 Yes, of course.
00:20:55.335 --> 00:20:58.514 Sanity check that the attributes on there and that, uh,
00:20:58.514 --> 00:21:00.445 everything in that looks correct.
00:21:02.265 --> 00:21:04.669 Is it? I mean, the divorce, obviously picking up everything
00:21:04.669 --> 00:21:07.234 else that should be updated in that file, it's just not picking
00:21:07.234 --> 00:21:07.875 up this new one.
00:21:08.685 --> 00:21:12.275 OK, it does have the SQL Schema, contacts, user product.
00:21:12.815 --> 00:21:14.845 So that is a.
00:21:16.635 --> 00:21:18.155 That is a relationship table.
00:21:20.115 --> 00:21:23.285 It you don't have the base that does the other piece on it.
00:21:24.485 --> 00:21:26.395 She lied. Maybe I'm thinking of the wrong thing.
00:21:27.155 --> 00:21:28.225 It's probably fine. Never mind.
00:21:31.155 --> 00:21:33.710 Umm, because it has the interfaces up there, so it's
00:21:33.710 --> 00:21:34.385 probably fine.
00:21:35.515 --> 00:21:35.925 OK.
00:21:37.325 --> 00:21:40.092 So we know that that part's there, and we know that that
00:21:40.092 --> 00:21:42.665 part did what it was supposed to do with that piece.
00:21:43.735 --> 00:21:47.080 If we look at your the file that we just looked at with the
00:21:47.080 --> 00:21:48.585 mapping initializer dot CS.
00:21:49.955 --> 00:21:51.225 It's the second tab that's open.
00:21:53.235 --> 00:21:54.805 As did it update this file.
00:21:56.785 --> 00:21:57.425 Ohh.
00:21:56.965 --> 00:21:59.940 Now it did not. So something about it is that it's either
00:21:59.940 --> 00:22:02.710 locked or something and so it wasn't able to build it
00:22:02.710 --> 00:22:05.993 correctly and and put that into memory that that changed. Let's
00:22:05.993 --> 00:22:09.173 try closing Visual Studio and reopening it and then build the
00:22:09.173 --> 00:22:10.815 data model project specifically.
00:22:12.485 --> 00:22:12.775 Correct.
00:22:13.865 --> 00:22:15.695 I have two instances open.
00:22:14.005 --> 00:22:16.575 Visual Studio could be locking it with A at 4.
00:22:16.995 --> 00:22:19.665 I'll just go ahead and close them down both cause I.
00:23:13.565 --> 00:23:15.455 Now regular data model until it to build.
00:23:17.395 --> 00:23:21.025 OK, at the very top level of data model?
00:23:21.445 --> 00:23:23.558 You're right, like clicking on the project itself and just tell
00:23:23.558 --> 00:23:23.955 it to build.
00:23:52.975 --> 00:23:54.265 A long time to start building.
00:23:55.215 --> 00:23:55.505 Yeah.
00:23:56.275 --> 00:23:58.305 There it goes. OK, now run that T4 again.
00:23:57.055 --> 00:23:58.055 It was like I finished.
00:24:53.035 --> 00:24:55.895 And if the if Visual Studio is responding then it's done.
00:25:05.465 --> 00:25:09.202 OK, it seems to have finished. You know, I'm still getting the
00:25:08.705 --> 00:25:08.935 Right.
00:25:09.202 --> 00:25:09.855 beach ball.
00:25:11.815 --> 00:25:13.525 Umm, OK. Focus on Visual Studio.
00:25:14.045 --> 00:25:14.285 OK.
00:25:18.365 --> 00:25:19.285 And let's look at that.
00:25:19.845 --> 00:25:20.375 And.
00:25:21.435 --> 00:25:23.545 File to make sure that it's, uh.
00:25:24.435 --> 00:25:25.525 Ready to do it?
00:25:26.845 --> 00:25:27.815 Or that it modified it.
00:25:30.375 --> 00:25:32.015 Click on Mac English analyzer CS.
00:25:35.495 --> 00:25:40.147 When I close the data model TT and I recommend turning the the
00:25:40.147 --> 00:25:41.255 preview or off.
00:25:42.365 --> 00:25:45.214 Umm, because it can leave you with stuck windows open and in
00:25:45.214 --> 00:25:47.782 the TT files. Like if you hit save all you're on it or
00:25:47.782 --> 00:25:50.771 something or try to touch it and click away. It can make it run
00:25:50.771 --> 00:25:51.005 them.
00:25:52.275 --> 00:25:52.775 Oh, OK.
00:25:53.645 --> 00:25:55.477 Which means that you'll be locked up again while you trying
00:25:55.477 --> 00:25:55.905 to get rid of.
00:26:04.265 --> 00:26:04.515 Alright.
00:26:05.385 --> 00:26:08.628 That preview button to enable and disable it is next to the
00:26:08.628 --> 00:26:11.655 little wrench icon on the solution Explorers icon tray.
00:26:14.125 --> 00:26:15.295 One of the last button there.
00:26:16.875 --> 00:26:19.886 You know, if you toggle that off, it won't open stuff as you
00:26:19.886 --> 00:26:22.305 click on files on the the solution tree anymore.
00:26:23.685 --> 00:26:24.335 OK.
00:26:26.025 --> 00:26:27.145 OK, so if we.
00:26:26.045 --> 00:26:27.055 Should be talking about.
00:26:28.025 --> 00:26:28.305 Yeah.
00:26:30.065 --> 00:26:32.998 So then close the association workflows T include that you
00:26:30.095 --> 00:26:32.005 OK. We will be back here on that.
00:26:32.998 --> 00:26:33.495 have open.
00:26:34.655 --> 00:26:35.345 We don't need that.
00:26:37.545 --> 00:26:39.115 We're going to focus on the mapping initializer.
00:26:39.815 --> 00:26:43.054 OK, so we see here it's still only has user product type. It
00:26:43.054 --> 00:26:46.293 did not make user product there. So I'm wondering if there's
00:26:46.293 --> 00:26:49.266 something specific in the mapping T include that is not
00:26:49.266 --> 00:26:52.240 doing it right. Go to the mapping dot initializer dot T
00:26:52.240 --> 00:26:52.665 include.
00:26:53.575 --> 00:26:55.135 Of those T4 files scroll back up.
00:26:57.495 --> 00:26:58.065 Roll back up.
00:26:59.195 --> 00:27:00.285 At the top, scroll back up.
00:27:01.065 --> 00:27:01.475 Uh.
00:27:02.175 --> 00:27:04.545 There you go. Mapping dot initializer include.
00:27:03.245 --> 00:27:03.775 This one here.
00:27:05.705 --> 00:27:05.935 OK.
00:27:07.385 --> 00:27:07.665 OK.
00:27:08.365 --> 00:27:10.735 And then you're going to see in here we have the table classes.
00:27:13.005 --> 00:27:13.745 Umm.
00:27:14.555 --> 00:27:17.331 We're looking at that skip list and just making sure it's not in
00:27:17.331 --> 00:27:19.895 the skip list and I don't see it there, so that's not that.
00:27:20.935 --> 00:27:23.390 On the table classes it's looping through and it does the
00:27:23.390 --> 00:27:25.972 model Mapper initialize it for and it's literally just going
00:27:25.972 --> 00:27:28.596 through all the tables that it finds. So for some reason it's
00:27:28.596 --> 00:27:29.485 still not getting it.
00:27:30.905 --> 00:27:32.195 Are your app pools running?
00:27:33.555 --> 00:27:35.545 For what's what's pointed at this folder for region?
00:27:39.015 --> 00:27:39.825 He tried that off, yeah.
00:27:39.535 --> 00:27:43.215 But yeah, let's see. Ohh they are not running.
00:27:43.885 --> 00:27:46.375 OK, so we want them off that. No, we want them off.
00:27:44.205 --> 00:27:44.505 Is.
00:27:46.435 --> 00:27:47.595 Oh, we want them, OK?
00:27:48.305 --> 00:27:49.605 Yeah, we don't want them on.
00:27:51.875 --> 00:27:52.405 Umm.
00:27:54.245 --> 00:27:57.522 So I the only reason that it wouldn't pick that up is if it's
00:27:57.522 --> 00:28:00.905 somehow cut, can't pick up that the the file is there to do it.
00:28:01.645 --> 00:28:02.195 Umm.
00:28:04.455 --> 00:28:05.085 The.
00:28:07.745 --> 00:28:10.286 Go ahead and do a solution and do a full rebuild cause I don't
00:28:10.286 --> 00:28:12.465 know why it's locked up. Still. Go ahead and rebuild.
00:28:13.755 --> 00:28:14.055 Yep.
00:28:22.545 --> 00:28:25.190 If it doesn't get it this time, we'll just manually add it for
00:28:25.190 --> 00:28:27.584 the moment, and then we'll probably have to do something
00:28:27.584 --> 00:28:30.271 else, like you do a fresh check, another folder or something to
00:28:30.271 --> 00:28:31.615 make it recognize properly, but.
00:28:46.585 --> 00:28:48.855 Should I close this TT included or do you want it up still?
00:28:49.735 --> 00:28:50.615 Let's leave it here.
00:28:51.695 --> 00:28:52.025 OK.
00:28:51.725 --> 00:28:54.392 It includes can't run by themselves, they're they're they
00:28:54.392 --> 00:28:56.875 don't have the trigger on them, only not TT files do.
00:28:55.095 --> 00:28:55.385 Uh.
00:28:57.795 --> 00:28:58.215 And.
00:28:57.895 --> 00:29:00.385 So it's the TTS you don't wanna leave them open.
00:29:00.275 --> 00:29:00.485 Yeah.
00:31:37.535 --> 00:31:40.245 It seemed to take longer than normal, but it's done.
00:31:42.185 --> 00:31:45.193 Can you do one quick thing? UM and any back end developers that
00:31:44.425 --> 00:31:44.725 Sure.
00:31:45.193 --> 00:31:47.355 are in here right now, especially new people.
00:31:48.455 --> 00:31:50.825 Actually everybody back in front and doesn't matter.
00:31:52.415 --> 00:31:55.758 Quick thing you can do after a build if you're wanting to be
00:31:55.758 --> 00:31:58.772 sure that there weren't any issues is to click in your
00:31:58.772 --> 00:32:00.965 output window down there at the bottom.
00:32:01.825 --> 00:32:02.165 OK.
00:32:02.705 --> 00:32:07.228 And inside that text area just like click in the actual text
00:32:07.228 --> 00:32:11.085 area of all the output anywhere and then control F.
00:32:12.065 --> 00:32:15.545 To search in here and Type 0 space file.
00:32:12.465 --> 00:32:12.935 Join.
00:32:16.785 --> 00:32:17.325 Umm.
00:32:18.755 --> 00:32:22.367 OK, this that is good. Yeah, file. The fact that there are no
00:32:19.265 --> 00:32:19.635 File.
00:32:22.367 --> 00:32:25.921 occurrences of that is a good thing. If you ever have either
00:32:22.985 --> 00:32:23.655 Ah.
00:32:25.921 --> 00:32:29.242 the the search term 0 files copied or sharing violation,
00:32:29.242 --> 00:32:32.854 that means that something is holding. Something's locking the
00:32:32.854 --> 00:32:36.350 files and it was not able to overwrite them with the build.
00:32:36.350 --> 00:32:39.904 And that means that stuff is most likely not gonna work. You
00:32:39.904 --> 00:32:43.691 need to either. You're probably either have your app pools on or
00:32:43.691 --> 00:32:47.304 you ran the T fours without like one of the front and T fours
00:32:47.304 --> 00:32:49.285 without restarting Visual Studio.
00:32:49.625 --> 00:32:53.181 Or something like that. And so the the tried and true solution.
00:32:53.181 --> 00:32:56.404 If that comes up is make sure that pulls are off. Restart
00:32:56.404 --> 00:32:59.849 Visual Studio, run the build again. But that's something that
00:32:59.849 --> 00:33:03.405 I kind of just get in the habit of doing every now and then is,
00:33:03.405 --> 00:33:06.628 especially if I'm debugging something like this where I'm
00:33:06.628 --> 00:33:10.017 expecting to see a change and I'm not always a good thing to
00:33:10.017 --> 00:33:13.296 do is to jump in there and just run that check. It takes 2
00:33:13.296 --> 00:33:16.741 seconds to just search in there for the phrase 0 file, and if
00:33:16.741 --> 00:33:20.075 nothing comes up, then in theory or at least good to go on.
00:33:20.175 --> 00:33:22.475 The fact that it was able to successfully copy those files.
00:33:24.095 --> 00:33:27.570 OK. Quick question on something you just said, because I think
00:33:27.570 --> 00:33:30.990 that might be new information, app pool should not be running
00:33:30.990 --> 00:33:34.465 when we do a rebuild. Is that correct? Just as a general rule?
00:33:33.865 --> 00:33:35.555 Absolutely correct, yes.
00:33:35.985 --> 00:33:36.295 OK.
00:33:36.645 --> 00:33:41.359 When the apples are running, the files that are being the files
00:33:41.359 --> 00:33:46.147 that it uses to run the site are locked and the rebuild will not
00:33:46.147 --> 00:33:50.714 be able to overwrite them. And in that situation you will see
00:33:50.714 --> 00:33:55.134 these 00 files copied or the sharing violation. Or actually
00:33:51.955 --> 00:33:52.705 Is there a father?
00:33:55.134 --> 00:33:59.480 you see both. So yes, 100% of the time. Make sure you have
00:33:59.480 --> 00:34:03.605 your app settings off before you do a rebuild or build.
00:34:06.265 --> 00:34:06.455 Cool.
00:34:09.175 --> 00:34:12.807 So now that we've run all that with a rebuild, go ahead and run
00:34:12.807 --> 00:34:15.645 that T4 again. So just right click it and run it.
00:34:17.215 --> 00:34:17.455 OK.
00:34:22.285 --> 00:34:23.935 And it's going to take a moment to do its thing.
00:34:50.435 --> 00:34:51.585 OK. And then click it.
00:34:53.055 --> 00:34:55.265 It will first make sure it's actually responsive now.
00:34:57.755 --> 00:34:58.485 Yeah, there you go.
00:35:02.355 --> 00:35:05.151 And it's still didn't do it, which means something's
00:35:05.151 --> 00:35:08.316 definitely wrong with how this thing is spinning it out. It
00:35:08.316 --> 00:35:11.481 came. They can't find it or something, but the fact that it
00:35:11.481 --> 00:35:14.225 made it that other file is odd. Let's go ahead and.
00:35:16.095 --> 00:35:18.045 Clear your filter on the solution tree.
00:35:18.925 --> 00:35:19.295 OK.
00:35:21.665 --> 00:35:24.667 And then click the double arrow that words, one pointing left,
00:35:24.667 --> 00:35:26.145 one pointing right on the tray.
00:35:27.835 --> 00:35:29.765 Not to define the active document and show it to you.
00:35:30.475 --> 00:35:32.795 OK. So that BAC initializer got CS. Delete it.
00:35:30.645 --> 00:35:30.875 OK.
00:35:41.015 --> 00:35:41.205 Yep.
00:35:42.505 --> 00:35:45.191 And then scroll up to the context folder in the mapping
00:35:45.191 --> 00:35:45.575 project.
00:35:45.975 --> 00:35:46.275 Oops.
00:35:46.585 --> 00:35:47.355 Delete the.
00:35:47.075 --> 00:35:47.525 But.
00:35:49.885 --> 00:35:52.316 In the context in, Yep. So that's the mapping dot
00:35:52.316 --> 00:35:55.525 generated. Find the user product mapping and delete it and at the
00:35:55.525 --> 00:35:56.935 product type mapping as well.
00:35:58.655 --> 00:35:59.225 These two.
00:36:00.305 --> 00:36:00.675 Yes.
00:36:00.815 --> 00:36:03.787 I realize this is probably hard to see. These two should both go
00:36:03.787 --> 00:36:03.925 OK.
00:36:11.325 --> 00:36:12.415 OK, they're both gone.
00:36:11.725 --> 00:36:14.557 Now we're going to run that four again and make sure that it did
00:36:14.557 --> 00:36:17.214 regenerate those two files. Our three files on it. You don't
00:36:17.214 --> 00:36:19.175 need to search cause you can already see it.
00:36:25.535 --> 00:36:29.447 So sorry, I really did it before I heard you finish your
00:36:28.905 --> 00:36:31.258 Go ahead. When it comes back, clear the search case. We need
00:36:29.447 --> 00:36:30.065 sentence.
00:36:31.258 --> 00:36:32.685 to be able to see that folder again.
00:36:39.555 --> 00:36:44.105 If it doesn't generate those two generated dot CS files, then we
00:36:44.105 --> 00:36:44.805 know that.
00:36:46.205 --> 00:36:48.683 It actually isn't seen and that the file was only there because
00:36:48.683 --> 00:36:51.085 of a previous runs at some point where he was able to see it.
00:36:52.075 --> 00:36:56.313 OK, I I see user product and user product type are back sure.
00:36:53.565 --> 00:36:53.935 So.
00:36:55.095 --> 00:36:57.295 Well, hold on. That's the wrong project, yeah.
00:36:56.313 --> 00:36:59.595 Ohh Yep, you're right, you're absolutely right.
00:36:58.065 --> 00:37:00.555 So yeah, that's that's data model shares to collapse that
00:37:00.555 --> 00:37:02.959 one. And then we look at the mapping one and I see user
00:37:02.959 --> 00:37:05.579 product mapping and user product type mapping. The fact that
00:37:05.579 --> 00:37:07.983 that's there means that the mapping was knows that that
00:37:07.983 --> 00:37:10.602 thing exists which means it should know that it needs to put
00:37:10.602 --> 00:37:13.221 it into that other part you double click on the user product
00:37:13.221 --> 00:37:13.565 mapping.
00:37:14.245 --> 00:37:15.645 Uh, that generated that CS.
00:37:18.295 --> 00:37:20.845 We could see that it is the user product, it does. It knows all
00:37:20.845 --> 00:37:23.315 that stuff about it. It is fully aware of what that class is.
00:37:24.265 --> 00:37:26.145 And that it's under the context schema.
00:37:27.225 --> 00:37:29.884 And made it back. We it's it's fully aware of all that stuff.
00:37:29.884 --> 00:37:30.785 Let's go look at the.
00:37:31.325 --> 00:37:33.995 Uh. Initializer CS again.
00:37:39.655 --> 00:37:40.935 You did not recreate.
00:37:42.795 --> 00:37:43.115 Yeah.
00:37:44.545 --> 00:37:48.379 OK, try searching for mapping initializer dot CS in the search
00:37:48.379 --> 00:37:49.475 solution Explorer.
00:37:50.565 --> 00:37:52.065 Maybe it put it in the wrong place.
00:38:00.025 --> 00:38:03.275 They just didn't generate it at all. OK, so then the bug is the
00:38:03.275 --> 00:38:06.424 T4 is not generating that file at all. So close to clear that
00:38:06.424 --> 00:38:09.572 we need to go to the data model dot T and we need to actually
00:38:09.572 --> 00:38:10.385 modify the file.
00:38:12.005 --> 00:38:12.375 OK.
00:38:13.455 --> 00:38:15.345 Uh, so open data model dot T.
00:38:13.515 --> 00:38:13.825 Right.
00:38:15.465 --> 00:38:17.175 Gonna open this and then we're going to modify it.
00:38:17.855 --> 00:38:19.825 When you're when you have this file open.
00:38:17.905 --> 00:38:18.255 OK.
00:38:20.485 --> 00:38:23.326 Just like his daddy TT4 file. You wanna be careful not to
00:38:23.326 --> 00:38:26.217 click away from the file or press save unless you're ready
00:38:26.217 --> 00:38:29.156 for it to run, because if you click away or you press save,
00:38:29.156 --> 00:38:32.341 it's going to automatically kick it off and then you can systems
00:38:32.341 --> 00:38:34.105 gonna be locked up until it's done.
00:38:34.905 --> 00:38:35.275 OK.
00:38:36.235 --> 00:38:38.733 And that's advice for everybody. So just be careful when you're
00:38:38.733 --> 00:38:40.998 inside this file, and that's part of why I turned the the
00:38:40.998 --> 00:38:43.457 previews off is. I don't want these to get open and then click
00:38:43.457 --> 00:38:43.965 on the thing.
00:38:44.715 --> 00:38:45.135 I said.
00:38:44.845 --> 00:38:45.185 Uh.
00:38:46.575 --> 00:38:50.304 OK, so scroll through this and you should see one of those
00:38:46.755 --> 00:38:47.035 OK.
00:38:50.304 --> 00:38:53.085 include lines up. Stay there, they'll hire.
00:38:52.895 --> 00:38:53.065 Yeah.
00:38:54.325 --> 00:38:58.043 One of those include lines from 23 to 42 should be the mapping
00:38:58.043 --> 00:39:01.880 initializer. Now because of the color and the way it's doing it,
00:39:01.880 --> 00:39:02.825 I can't read it.
00:39:03.525 --> 00:39:08.375 Uh, yeah, sorry. OK, so mapping initializer.
00:39:09.285 --> 00:39:10.685 See that he's 36.
00:39:12.525 --> 00:39:16.485 36 yes, mapping dot initializer dot TXT include.
00:39:17.475 --> 00:39:20.478 So that's telling it to to use that file. So let's Scroll down
00:39:20.478 --> 00:39:23.385 until we into the part that actually tries to run a bunch of
00:39:23.385 --> 00:39:24.005 these things.
00:39:24.725 --> 00:39:27.969 Uh, we're gonna look for the one that tells it to run the mapping
00:39:27.969 --> 00:39:28.215 part.
00:39:29.205 --> 00:39:33.040 There's the generate mapping initializer file with the table
00:39:33.040 --> 00:39:34.235 classes on line 73.
00:39:38.475 --> 00:39:41.571 OK. So that's the call that's supposed to be happening in to
00:39:41.571 --> 00:39:44.109 physically create that initializer file. So maybe
00:39:44.109 --> 00:39:47.257 there's something wrong inside that T itself that's doing it,
00:39:47.257 --> 00:39:50.303 or sorry the T include that's doing it because we know that
00:39:50.303 --> 00:39:51.775 the TV up here is calling it.
00:39:52.925 --> 00:39:55.607 For the moment, go ahead and try to close this file directly, and
00:39:55.607 --> 00:39:57.315 let's hope that doesn't try to run again.
00:39:58.885 --> 00:39:59.125 But.
00:40:00.305 --> 00:40:03.654 OK, it let it go. Good. So then expand the T Force folder under
00:40:00.355 --> 00:40:00.655 Most.
00:40:03.654 --> 00:40:06.637 data model and then we're gonna look at the model Mapper
00:40:06.637 --> 00:40:07.265 initializer.
00:40:08.205 --> 00:40:08.915 Et include.
00:40:10.755 --> 00:40:13.705 Mapping dot initializer dot HTML code.
00:40:12.255 --> 00:40:14.555 Yeah, that that initializer T plus, we're gonna open that.
00:40:15.215 --> 00:40:18.261 And primarily, we're going to look at the end of the file. So
00:40:18.261 --> 00:40:21.356 the end of the file here says to go to the save output of that
00:40:21.356 --> 00:40:24.550 location, which is 2 folders up, which is will be where the root
00:40:24.550 --> 00:40:27.448 of the Seth is and then into 03.models.net and mapping and
00:40:27.448 --> 00:40:30.151 then into 03 dot clarity commerce dot mapping and then
00:40:30.151 --> 00:40:33.246 put the file of that file name there. Scroll up and let's look
00:40:33.246 --> 00:40:36.390 at the file name and make sure doesn't have like the wrong file
00:40:36.390 --> 00:40:37.275 name or something.
00:40:39.105 --> 00:40:40.105 In the T include, yeah.
00:40:42.095 --> 00:40:44.893 The file name that it's got is mapping initializer, so that
00:40:44.893 --> 00:40:47.645 should be correct and if you scroll back down a smidge you
00:40:47.645 --> 00:40:48.765 should see that it said.
00:40:50.715 --> 00:40:51.295 Uh, yes.
00:40:50.725 --> 00:40:54.006 A true which we don't add it to Visual Studio and the CS is the
00:40:54.006 --> 00:40:54.775 file extension.
00:40:55.575 --> 00:40:55.775 OK.
00:40:57.345 --> 00:40:57.975 So.
00:40:58.925 --> 00:41:02.135 What I'm seeing here looks correct to me. Let's compare it
00:41:02.135 --> 00:41:05.127 with the mapping T include because the end of its line
00:41:05.127 --> 00:41:08.501 should say basically the same path, and we'll find out if the
00:41:08.501 --> 00:41:11.874 path is wrong for some reason because we know the mapping one
00:41:11.135 --> 00:41:11.395 OK.
00:41:11.874 --> 00:41:12.255 worked.
00:41:14.895 --> 00:41:16.895 OK. But then jump to the end of the file.
00:41:19.575 --> 00:41:20.265 Control end.
00:41:21.535 --> 00:41:22.285 Control it.
00:41:23.605 --> 00:41:23.835 Yeah.
00:41:27.385 --> 00:41:30.425 OK, so this one says full file name generated dot CS. We need
00:41:30.425 --> 00:41:33.662 to figure out what the full file name comes from. So double click
00:41:33.662 --> 00:41:34.545 on full file name.
00:41:37.015 --> 00:41:37.925 And control F.
00:41:40.615 --> 00:41:43.666 Mostly where it's defined. You could see in these scroll bar
00:41:43.666 --> 00:41:46.818 where it's being defined and you can see that there's the full
00:41:46.818 --> 00:41:49.919 path there and what it's doing is it's in the case of system,
00:41:49.919 --> 00:41:52.870 it replaces it with the word structure and then. Otherwise
00:41:52.870 --> 00:41:55.922 it's the type dot name mapping and then it's going into that
00:41:55.922 --> 00:41:58.973 same path. Let's compare that path with the one in that one.
00:41:58.973 --> 00:42:01.875 If you right click the mapping dot T include file header.
00:42:04.935 --> 00:42:08.765 And say new horizontal document group.
00:42:10.405 --> 00:42:12.255 You're the horizontal document group.
00:42:12.995 --> 00:42:13.405 OK.
00:42:13.105 --> 00:42:13.455 Yes.
00:42:14.425 --> 00:42:16.475 And then scroll it to where that spots in view again.
00:42:20.355 --> 00:42:22.228 You're going to be throwing on both of them, so it doesn't
00:42:22.228 --> 00:42:22.895 matter when do first.
00:42:23.485 --> 00:42:23.855 OK.
00:42:25.565 --> 00:42:26.015 Yeah.
00:42:29.105 --> 00:42:33.060 OK, we got dot dot slash. Yes. So we got dot dot slash slash
00:42:29.185 --> 00:42:30.195 That's what you're looking for.
00:42:33.060 --> 00:42:36.950 dot dot slash slash O3 dot models and mapping 03 dot models
00:42:36.950 --> 00:42:41.035 and mapping slash O3 dot clarity dot ecommerce dot mapping up.
00:42:41.035 --> 00:42:45.055 Yep it is the wrong path. It's missing the models part of it.
00:42:46.275 --> 00:42:50.235 On 56 of the of the top file you need to add dot models.
00:42:48.985 --> 00:42:49.385 OK.
00:42:51.415 --> 00:42:53.065 Into that before the map.
00:42:52.615 --> 00:42:53.015 Not.
00:42:56.295 --> 00:42:58.955 Commerce. Ohh yes, stop models.
00:43:00.425 --> 00:43:00.955 Got mapping.
00:43:00.545 --> 00:43:01.315 Partner.
00:43:03.425 --> 00:43:05.647 So that's the problem is it's physically. Now. If we go look
00:43:05.647 --> 00:43:07.834 in the folder structure, we're probably gonna see that file
00:43:07.834 --> 00:43:09.255 sitting over there in the wrong place.
00:43:10.425 --> 00:43:13.282 That's interesting because we weren't seeing it in the. You
00:43:13.282 --> 00:43:16.091 have to look in like the actual on on the disk rather than
00:43:16.091 --> 00:43:18.615 Visual Studio, but that's interesting cuz we weren't
00:43:18.615 --> 00:43:19.425 seeing it in the.
00:43:20.245 --> 00:43:21.655 Diff the git diff.
00:43:22.795 --> 00:43:25.694 Yeah. So I don't know what Git differ is doing inside Visual
00:43:25.694 --> 00:43:27.405 Studio code, but it was being dumb.
00:43:32.555 --> 00:43:32.925 OK.
00:43:32.675 --> 00:43:35.165 And be under that 03 go all the way up the.
00:43:36.965 --> 00:43:38.295 Oh, it's going to be under O3.
00:43:37.045 --> 00:43:37.355 Yeah.
00:43:38.725 --> 00:43:39.395 Yeah.
00:43:39.905 --> 00:43:40.175 OK.
00:43:40.535 --> 00:43:41.355 Umm.
00:43:44.025 --> 00:43:46.983 UH-3 clarity. Commerce mapping. It's that very first one right
00:43:44.395 --> 00:43:45.805 The three models.
00:43:46.983 --> 00:43:47.265 there.
00:43:48.375 --> 00:43:50.485 Top folder underneath and there it is yeah.
00:43:48.735 --> 00:43:49.745 I've been in the sizer.
00:43:49.955 --> 00:43:52.074 Yeah. So that's that's the file that's been going to the wrong
00:43:52.074 --> 00:43:54.159 place. And if you scroll through it, you'll probably find the
00:43:54.159 --> 00:43:55.135 user product that's in there.
00:43:56.535 --> 00:43:58.225 Use control for user product.
00:44:02.495 --> 00:44:02.775 Yep.
00:44:02.685 --> 00:44:04.886 Yep, it is generating it correctly in that output file.
00:44:04.886 --> 00:44:07.401 So we need to just delete that folder because it's not supposed
00:44:07.401 --> 00:44:07.755 to exist.
00:44:08.505 --> 00:44:09.155 This one here.
00:44:13.645 --> 00:44:16.457 Ohh, I'd bet we weren't seeing this in the diff because you
00:44:16.457 --> 00:44:19.505 probably already committed this at some point and we weren't. It
00:44:19.505 --> 00:44:20.255 wasn't changing.
00:44:21.105 --> 00:44:21.545 Yeah.
00:44:22.165 --> 00:44:25.081 Call. They didn't realize that it was not where it was supposed
00:44:23.795 --> 00:44:25.635 Oh yeah, we wanna move it to recycle bin.
00:44:25.081 --> 00:44:25.355 to be.
00:44:27.615 --> 00:44:29.385 And then minimize Visual Studio code.
00:44:32.575 --> 00:44:35.477 And then we need to run the T4 again now that we modify the T
00:44:35.477 --> 00:44:37.115 include, save the T include first.
00:44:40.125 --> 00:44:42.777 And then we can close the two T include files because we don't
00:44:42.777 --> 00:44:43.535 need them anymore.
00:44:44.765 --> 00:44:45.065 And.
00:44:51.055 --> 00:44:51.605 Then.
00:44:51.365 --> 00:44:52.105 On the 2nd row.
00:44:55.855 --> 00:44:58.185 It's it's on the tab itself that has the X.
00:44:57.605 --> 00:45:02.045 Yeah, I've never done the horizontal split. I was like,
00:45:02.045 --> 00:45:05.455 where is it? OK, so run the data model TT.
00:45:05.175 --> 00:45:07.239 Right. And so you can already see it. You don't have to filter
00:45:07.239 --> 00:45:08.615 to it. So just right click it and run it.
00:45:19.575 --> 00:45:22.697 Let me again once it comes back, we're going to Scroll down to
00:45:22.697 --> 00:45:25.918 the models dot mapping and look for that initializer dot CS file
00:45:25.918 --> 00:45:27.455 being in the correct place now.
00:45:46.775 --> 00:45:50.173 And it should be under here 03 clarity models dot mapping
00:45:50.075 --> 00:45:53.185 Yes, we will be at the last night there.
00:45:50.173 --> 00:45:53.805 mapping initializer looks like there's a new file right here.
00:45:54.615 --> 00:45:57.434 Yes. So now that that's there and if you open it, it's
00:45:55.215 --> 00:45:55.545 Oops.
00:45:57.434 --> 00:46:00.305 probably gonna say it correctly in the context section.
00:46:03.515 --> 00:46:06.645 Yep, there it is. OK, now we just need to do a regular build.
00:46:08.215 --> 00:46:10.685 OK, at the project level.
00:46:11.915 --> 00:46:14.123 Yeah, just hit control shift or you don't have to select
00:46:11.945 --> 00:46:12.375 Or.
00:46:14.123 --> 00:46:15.325 anything. Just control shift B.
00:46:16.115 --> 00:46:16.995 I'll check the OK.
00:46:18.015 --> 00:46:18.755 Starts a build.
00:46:20.585 --> 00:46:22.781 And anything that it believes has changed enough that needs to
00:46:22.781 --> 00:46:24.385 do whatever it's gonna do, whatever needs to.
00:46:41.605 --> 00:46:45.015 After this, we're going to do a run of those tests.
00:46:47.355 --> 00:46:47.885 Umm.
00:46:47.635 --> 00:46:47.995 OK.
00:46:48.635 --> 00:46:51.071 Which did you have? Did you close the test explorer? You
00:46:51.071 --> 00:46:52.525 don't need to close it each time.
00:46:52.965 --> 00:46:53.435 Uh.
00:46:55.785 --> 00:46:58.722 I may have or didn't come back when I reopened Visual Studio.
00:46:57.095 --> 00:46:57.375 See.
00:46:58.722 --> 00:47:00.475 I'm not actually sure, to be honest.
00:47:00.225 --> 00:47:00.445 OK.
00:47:31.195 --> 00:47:34.745 I'll have to go bug fix into the release and to develop, and then
00:47:34.745 --> 00:47:37.597 anybody who's been on this current release for their
00:47:37.597 --> 00:47:39.695 projects need to get a PR to fix that.
00:47:40.495 --> 00:47:41.125 It include.
00:47:41.985 --> 00:47:44.145 That it will put the correct file in the right place.
00:48:00.485 --> 00:48:03.171 Eric, if you're listening, can you do that as a make a note of
00:48:03.171 --> 00:48:03.385 that?
00:48:06.535 --> 00:48:08.265 He's not, but if you repeat it, I can.
00:48:09.155 --> 00:48:10.345 Take care that, sorry.
00:48:10.685 --> 00:48:14.232 There's a there's a typo in the mapping dot initializer dot T
00:48:14.232 --> 00:48:17.492 include that's putting the initializer file in the wrong
00:48:17.492 --> 00:48:19.495 place. It doesn't build correctly.
00:48:20.555 --> 00:48:20.755 OK.
00:48:21.195 --> 00:48:23.805 You get that for the last release and develop, and any
00:48:23.805 --> 00:48:26.415 client who's been run off of that the the new release.
00:48:28.935 --> 00:48:32.141 Uh region here will be corrected because he's got fixed here and
00:48:32.141 --> 00:48:33.325 he'll make a PR into QA.
00:48:42.205 --> 00:48:46.992 OK, that's done. Would you like me to open test Explorer and run
00:48:46.992 --> 00:48:48.245 the test on that?
00:48:47.745 --> 00:48:48.215 Yeah.
00:48:49.665 --> 00:48:50.375 Yeah, yeah, yeah.
00:48:49.865 --> 00:48:52.015 You're like that back into where? Where where we had it.
00:48:54.585 --> 00:48:55.725 How do I select that?
00:48:57.345 --> 00:49:00.776 So the one that you're seeing right there is the main well and
00:48:58.125 --> 00:48:59.345 But done this in the past.
00:49:00.776 --> 00:49:04.207 it's one drag down into the area of the bottom section 1st and
00:49:04.207 --> 00:49:06.985 then you'll get a plus bill on that one, not that.
00:49:05.515 --> 00:49:05.895 Uh.
00:49:07.835 --> 00:49:09.895 Not that this one here.
00:49:08.125 --> 00:49:08.495 Not that.
00:49:09.635 --> 00:49:12.351 Right to keep going down, drag your mouse down, down, down,
00:49:12.351 --> 00:49:15.112 down, down, down, down, down, like two more inches. There we
00:49:15.112 --> 00:49:17.602 go. Now you get a plus wheel that's down there. So the
00:49:17.602 --> 00:49:20.454 centerpiece means put it inside that thing. Or you can tell it
00:49:20.454 --> 00:49:23.215 to do the top right, left or whatever. So for the moment, we
00:49:22.755 --> 00:49:23.065 OK.
00:49:23.215 --> 00:49:26.112 want the middle piece. And so by dragging it to the plus wheel,
00:49:26.112 --> 00:49:28.285 we know that it's joining this thing correctly.
00:49:28.965 --> 00:49:30.405 Then you might get one. There it is.
00:49:29.015 --> 00:49:29.515 OK.
00:49:33.015 --> 00:49:35.935 And you had a search on it before where we with down to
00:49:35.935 --> 00:49:36.665 user products.
00:49:37.945 --> 00:49:39.075 Search the go.
00:49:40.045 --> 00:49:41.285 Top right of that little window.
00:49:44.195 --> 00:49:45.215 More to the right, all the way to the.
00:49:44.755 --> 00:49:48.195 Uh yes, yes. Ohh gosh. Alright, let me just type.
00:49:46.975 --> 00:49:50.405 OK. Careful. When? OK. Yeah. You pulled it out again.
00:49:49.865 --> 00:49:52.085 Yeah, yeah, I did. Oops.
00:49:53.175 --> 00:49:53.565 OK.
00:49:54.765 --> 00:49:57.289 Or head and drag it back into the well so that it's not
00:49:57.289 --> 00:49:57.695 floating.
00:50:01.195 --> 00:50:03.954 Are you drag the entire? Well, OK, so from now you need to go
00:50:03.954 --> 00:50:06.580 to the plus wheel that's in the middle and you can use the
00:50:06.580 --> 00:50:07.915 bottom part of the plus wheel.
00:50:09.115 --> 00:50:09.405 There.
00:50:09.345 --> 00:50:09.625 OK.
00:50:10.005 --> 00:50:11.295 Because we had tried the entire thing.
00:50:14.235 --> 00:50:16.777 OK, now you're gonna run those tests, and we're gonna see what
00:50:16.777 --> 00:50:19.077 the difference is. We're gonna get to down to where it's
00:50:19.077 --> 00:50:19.965 actually like missing.
00:50:21.055 --> 00:50:24.365 Individual tables not missing an A mapping initializer.
00:50:47.925 --> 00:50:49.255 Already more tests are passing.
00:50:53.135 --> 00:50:54.725 All of them did great.
00:50:54.565 --> 00:50:54.995 Awesome.
00:50:55.965 --> 00:50:56.775 So you're done.
00:50:56.335 --> 00:50:57.035 That's excellent.
00:50:58.065 --> 00:51:01.035 We actually you can go back to that the file where you had that
00:51:01.035 --> 00:51:03.634 override, I think you can comment that out and run them
00:51:03.634 --> 00:51:06.372 again and if they're still good then we can get rid of the
00:51:06.372 --> 00:51:07.115 extended dot CS.
00:51:07.785 --> 00:51:09.568 Is. It turns out that wasn't where the problem was actually
00:51:07.895 --> 00:51:08.215 OK.
00:51:09.568 --> 00:51:09.925 coming from.
00:51:10.485 --> 00:51:14.048 So I should comment my uh, my overridden method here and then
00:51:13.455 --> 00:51:13.705 Yeah.
00:51:14.048 --> 00:51:14.795 try it again.
00:51:14.715 --> 00:51:15.125 Yes.
00:51:18.495 --> 00:51:19.495 OK, good. You'll see.
00:51:21.295 --> 00:51:24.325 I I didn't Control Board slash.
00:51:25.145 --> 00:51:25.575 Whatever.
00:51:26.575 --> 00:51:28.855 Do I need to rebuild the testing?
00:51:29.325 --> 00:51:29.645 Now.
00:51:31.195 --> 00:51:33.355 When you tell it to run the test, it's going to build what
00:51:33.355 --> 00:51:34.015 it needs to build.
00:51:34.275 --> 00:51:37.884 OK. Yeah, that makes sense. That will save time too. OK, I've
00:51:37.884 --> 00:51:39.165 been doing that wrong.
00:51:41.365 --> 00:51:44.604 So like the testing for the the service project isn't referenced
00:51:44.604 --> 00:51:47.694 by the testing or by anything that the testing references, so
00:51:47.694 --> 00:51:50.635 it doesn't build the service project. In order to do this.
00:51:51.145 --> 00:51:51.505 OK.
00:52:39.265 --> 00:52:42.308 James, what was the two files that you were comparing those
00:52:42.308 --> 00:52:45.250 file paths in? I was just checking anaerobe real quick to
00:52:45.250 --> 00:52:48.345 see if the same problem existed there and I have the mapping
00:52:48.345 --> 00:52:51.135 initializer dot T include but what was the other file?
00:52:52.355 --> 00:52:53.325 Think that TV Guide?
00:52:54.135 --> 00:52:54.585 OK.
00:52:56.375 --> 00:52:56.935 Thank you.
00:52:59.165 --> 00:53:02.590 Cool. It's like they passed. Uh, so for my PR I should uh, remove
00:53:02.590 --> 00:53:05.705 this extended. It doesn't seem to be needed. Is that right?
00:53:03.545 --> 00:53:03.745 I.
00:53:06.525 --> 00:53:06.935 Correct.
00:53:07.605 --> 00:53:07.995 OK.
00:53:09.485 --> 00:53:10.135 And that guy?
00:53:15.355 --> 00:53:17.065 Alright, awesome. Thank you so much.
00:53:16.365 --> 00:53:19.434 And you're for continuing whatever you're trying to
00:53:19.434 --> 00:53:21.795 continue with the work in the universe?
00:53:22.785 --> 00:53:24.425 Alright, appreciate it chance.
00:53:30.835 --> 00:53:34.239 Awesome. OK. So just to clarify on schema changes, because we
00:53:34.239 --> 00:53:36.929 need to update the documentation, it is just the
00:53:36.929 --> 00:53:39.235 one T4 that we have to run and that's it.
00:53:40.145 --> 00:53:43.175 Now you still need to run on the T forces at the .net nuke one I
00:53:43.175 --> 00:53:45.925 just introduced. The number that you had to run from like.
00:53:46.585 --> 00:53:48.385 12 to 6.
00:53:51.435 --> 00:53:52.455 OK, cool.
00:53:52.375 --> 00:53:58.918 Oh, I I have a a question on that. Since we're on the topic.
00:53:58.918 --> 00:54:02.995 So this is a 2022.4 build when I run.
00:54:03.775 --> 00:54:09.375 The T4S for the admin or excuse me, the angular JS storefront go
00:54:09.375 --> 00:54:14.458 doesn't like that. Do it and I understand that it that the
00:54:13.025 --> 00:54:14.275 Yeah, you don't.
00:54:14.458 --> 00:54:19.025 storefront is react, but so do I just skip that, OK.
00:54:16.085 --> 00:54:19.442 Yeah, you don't have to run that T4. You don't. You don't have to
00:54:19.442 --> 00:54:22.546 run the storefront angular one on projects that aren't using
00:54:22.546 --> 00:54:25.751 angular storefront it because they're there, have been changes
00:54:23.335 --> 00:54:24.255 OK. That makes sense.
00:54:25.751 --> 00:54:28.803 to some of the core logic that we haven't maintained in the
00:54:28.803 --> 00:54:32.008 angular store front cuz there's it's not worth the time. Those
00:54:32.008 --> 00:54:34.705 features aren't being used there anymore anyway, so.
00:54:36.115 --> 00:54:39.273 On projects that you're not using angular, which if you're
00:54:39.273 --> 00:54:39.755 not sure.
00:54:41.265 --> 00:54:45.041 You'll just assume you're not for pretty much all new
00:54:45.041 --> 00:54:49.306 projects. Anything that's not pay hub and is 2022.2 or newer
00:54:49.306 --> 00:54:50.775 is gonna be on react.
00:54:51.545 --> 00:54:51.845 OK.
00:54:51.755 --> 00:54:52.405 Umm.
00:54:54.285 --> 00:54:57.695 So, uh, in those scenarios, you don't need to run these
00:54:57.695 --> 00:55:01.592 storefront angular JT fours. You do always need to run. For now
00:55:01.592 --> 00:55:05.124 the admin angular JST force because the admin is still on
00:55:05.124 --> 00:55:07.925 Angular JS even if the store fronts on React.
00:55:08.775 --> 00:55:09.155 OK.
00:55:09.915 --> 00:55:13.955 The API reference that one seems to kick out a bunch of protocol
00:55:13.955 --> 00:55:15.945 correctly a bunch of HTML files.
00:55:16.675 --> 00:55:19.717 Yeah, it's, it's for the API reference for like we we can set
00:55:19.717 --> 00:55:21.925 that up so that you can like browse the API.
00:55:22.915 --> 00:55:26.628 He is familiar with swagger or or like the the the soap UI
00:55:23.055 --> 00:55:23.395 OK.
00:55:25.355 --> 00:55:26.525 Yes. Mm-hmm.
00:55:26.628 --> 00:55:30.341 portal. This is in lieu of using that because we can't use
00:55:30.341 --> 00:55:31.285 swagger itself.
00:55:31.575 --> 00:55:32.665 Oh, I see. OK.
00:55:33.335 --> 00:55:36.876 Because we have models that reference each other, so there's
00:55:36.876 --> 00:55:40.476 becomes circular dependencies, swagger and soap UI both freak
00:55:38.655 --> 00:55:38.935 Uh.
00:55:40.476 --> 00:55:44.192 out and break. So I have at 4. This is specifically designed to
00:55:44.192 --> 00:55:47.966 only work to a certain depth and prevent that kind of thing from
00:55:47.966 --> 00:55:50.115 happening in our code with the dtos.
00:55:48.515 --> 00:55:49.115 OK, cool.
00:55:50.665 --> 00:55:54.544 All right, that, that, that helps. So like specific to this
00:55:54.544 --> 00:55:58.293 project, the only one I would would skip for what we just
00:55:58.293 --> 00:56:00.815 talked about is a store print angular.
00:56:02.235 --> 00:56:04.565 Uh, just to make sure I understand. Cool.
00:56:02.785 --> 00:56:03.245 Yes.
00:56:05.235 --> 00:56:05.655 Thank you.
00:56:07.335 --> 00:56:10.651 And then generally like the the the clear cache buttons and some
00:56:10.651 --> 00:56:13.762 of these other ones if you're not adding a table, it doesn't
00:56:13.762 --> 00:56:16.568 actually change anything in those outputs, but it also
00:56:16.568 --> 00:56:19.833 doesn't hurt to run the T4. So if you really once you've really
00:56:19.833 --> 00:56:22.741 started to learn what each individual T4 does and how it
00:56:22.741 --> 00:56:25.649 does and what it's reacting to, then I would worry about
00:56:25.649 --> 00:56:28.659 starting to skip more of the individual files depending on
00:56:28.659 --> 00:56:31.668 what you were doing. But until you've gotten that level of
00:56:31.668 --> 00:56:32.995 familiarity, run them all.
00:56:34.255 --> 00:56:37.393 Obviously, I'm obviously except the Angular CB API, because if
00:56:37.393 --> 00:56:39.485 you're not, project is not using it, but.
00:56:40.535 --> 00:56:40.815 OK.
00:56:41.145 --> 00:56:44.148 Be used to the idea that you're going to be running virtually
00:56:44.148 --> 00:56:46.667 every T4 instead of skipping them because you don't
00:56:46.667 --> 00:56:49.719 necessarily know what they're doing or why they're doing them.
00:56:49.719 --> 00:56:52.770 And then as you get familiarity, we'll worry about, excuse me,
00:56:52.770 --> 00:56:54.805 whether or not you should skip something.
00:56:58.595 --> 00:56:59.735 OK, so this.
00:56:59.015 --> 00:56:59.875 That helps. Thanks.
00:57:00.635 --> 00:57:06.365 This is region and then Jeremy, you're also on PCs, correct?
00:57:07.355 --> 00:57:09.305 Yeah, so I I'm.
00:57:10.135 --> 00:57:13.244 I'm pretty sure it's the exact same problem because they were
00:57:12.915 --> 00:57:13.365 Mm-hmm.
00:57:13.244 --> 00:57:16.354 failing in exact same way, so I will replicate that change on
00:57:16.354 --> 00:57:16.555 PCs.
00:57:18.595 --> 00:57:19.625 It's fresh on my mind.
00:57:23.225 --> 00:57:25.655 And then the other two.