public IHttpActionResult PutBusinessAddress(int id, BusinessAddress businessAddress) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != businessAddress.BusinessAddressID) { return(BadRequest()); } try { db.UpdateBusinessAddress(id, businessAddress); } catch (DbUpdateConcurrencyException) { if (!BusinessAddressExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public BusinessAddress CreateBusinessAddress(BusinessAddress address) { address.Id = Guid.NewGuid(); var createBusinessAddress = Context.Add(address); return(createBusinessAddress.Entity); }
public BusinessAddress CreateBusinessAddress(BusinessAddress businessAddress) { db.BusinessAddresses.Add(businessAddress); db.SaveChanges(); return(businessAddress); }
/// <summary> /// Invoked when <see cref="ToDTO"/> operation is about to return. /// </summary> /// <param name="dto"><see cref="BusinessAddressDTO"/> converted from <see cref="BusinessAddress"/>.</param> static partial void OnDTO(this BusinessAddress entity, BusinessAddressDTO dto) { if (entity != null && entity.Address != null) { dto.Addres = AddressAssembler.ToDTO(entity.Address); } }
public BusinessAddress Create(BusinessAddress oBusinessAddress) { if (oBusinessAddress != null) { return(oBusinessAddressesRepo.CreateBusinessAddress(oBusinessAddress)); } return(null); }
public async Task <ActionResult> DeleteConfirmed(int id) { BusinessAddress businessAddress = await _db.BusinessAddresses.FindAsync(id); _db.BusinessAddresses.Remove(businessAddress); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); }
public BusinessAddressDTO Get(int businessAddressID) { BusinessAddressDTO oBusinessAddressDTO = null; if (businessAddressID > 0) { BusinessAddress oBusinessAddress = oBusinessAddressesRepo.GetBusinessAddress(businessAddressID); } return(oBusinessAddressDTO); }
public IHttpActionResult GetBusinessAddress(int id) { BusinessAddress businessAddress = db.GetBusinessAddress(id); if (businessAddress == null) { return(NotFound()); } return(Ok(businessAddress)); }
public IHttpActionResult PostBusinessAddress(BusinessAddress businessAddress) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.CreateBusinessAddress(businessAddress); return(CreatedAtRoute("DefaultApi", new { id = businessAddress.BusinessAddressID }, businessAddress)); }
public void UpdateBusinessAddress(int id, BusinessAddress businessAddress) { db.Entry(businessAddress).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { throw; } }
public IHttpActionResult DeleteBusinessAddress(int id) { BusinessAddress businessAddress = db.BusinessAddresses.Find(id); if (businessAddress == null) { return(NotFound()); } db.BusinessAddresses.Remove(businessAddress); db.SaveChanges(); return(Ok(businessAddress)); }
public BusinessAddress DeleteBusinessAddress(int id) { BusinessAddress businessAddress = db.BusinessAddresses.Find(id); if (businessAddress == null) { return(null); } db.BusinessAddresses.Remove(businessAddress); db.SaveChanges(); return(businessAddress); }
public async Task <ActionResult> Edit([Bind(Include = "BusinessAddressId,MerchantId,AddressType,BuildingNo,StreetName,TownName,StateName")] BusinessAddress businessAddress) { if (ModelState.IsValid) { _db.Entry(businessAddress).State = EntityState.Modified; await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } var userId = User.Identity.GetUserId(); ViewBag.MerchantId = new SelectList(_db.Merchants.AsNoTracking() .Where(x => merchantId.Equals(userId)), "MerchantId", "FullName", businessAddress.MerchantId); return(View(businessAddress)); }
// GET: BusinessAddresses/Details/5 public async Task <ActionResult> Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BusinessAddress businessAddress = await _db.BusinessAddresses.FindAsync(id); if (businessAddress == null) { return(HttpNotFound()); } return(View(businessAddress)); }
private BusinessAddress getBusinessAddress() { var result = new BusinessAddress(); var s = ConfigurationManager.GetSection("businessAddress"); //result.Name = ConfigurationManager.AppSettings.Get("BusinessAddressName"); //result.AddressLine1 = ConfigurationManager.AppSettings.Get("BusinessAddressAddressLine1"); //result.AddressLine2 = ConfigurationManager.AppSettings.Get("BusinessAddressAddressLine2"); //result.City = ConfigurationManager.AppSettings.Get("BusinessAddressCity"); //result.Email = ConfigurationManager.AppSettings.Get("BusinessAddressEmail"); //result.PostalCode = ConfigurationManager.AppSettings.Get("BusinessAddressPostalCode"); //result.State = ConfigurationManager.AppSettings.Get("BusinessAddressState"); return(result); }
public async Task <ActionResult> Create(BusinessAddress businessAddress) { if (ModelState.IsValid) { _db.BusinessAddresses.Add(businessAddress); await _db.SaveChangesAsync(); return(RedirectToAction("Index")); } var userId = User.Identity.GetUserId(); ViewBag.MerchantId = new SelectList(_db.Merchants.AsNoTracking() .Where(x => merchantId.Equals(userId)), "MerchantId", "FullName", businessAddress.MerchantId); return(View(businessAddress)); }
// GET: BusinessAddresses/Edit/5 public async Task <ActionResult> Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } BusinessAddress businessAddress = await _db.BusinessAddresses.FindAsync(id); if (businessAddress == null) { return(HttpNotFound()); } var userId = User.Identity.GetUserId(); ViewBag.MerchantId = new SelectList(_db.Merchants.AsNoTracking() .Where(x => merchantId.Equals(userId)), "MerchantId", "FullName", businessAddress.MerchantId); return(View(businessAddress)); }
//create new business public void CreateBusinessApplication() { //call home page to enter inside setting window Thread.Sleep(500); BusinessCreate.ClickOn(); softAssert.VerifyElementIsPresent(BusinessName); // BusinessName.EnterClearText("1", "name test"); BusinessSavebutton.ClickOn(); softAssert.VerifyElementIsPresent(BusinessEmail); BusinessName.EnterClearText(Constant.businessName); BusinessPractinerNum.EnterClearText(Constant.businessNum); BusinessAddress.EnterClearText(Constant.businessAddress); BusinessCity.EnterClearText(Constant.businessCity); BusinessPhone.EnterClearText(Constant.businessNum); BusinessEmail.EnterClearText(Constant.businessEmail); BusinessSavebutton.ClickOn(); softAssert.VerifySuccessMsg(); }
/// <summary> /// Converts this instance of <see cref="BusinessAddress"/> to an instance of <see cref="BusinessAddressDTO"/>. /// </summary> /// <param name="entity"><see cref="BusinessAddress"/> to convert.</param> public static BusinessAddressDTO ToDTO(this BusinessAddress entity) { if (entity == null) { return(null); } var dto = new BusinessAddressDTO(); dto.BusinessAddressID = entity.BusinessAddressID; dto.BusinessID = entity.BusinessID; dto.AddressID = entity.AddressID; dto.IsPrimary = entity.IsPrimary; entity.OnDTO(dto); return(dto); }
/// <summary> /// Converts this instance of <see cref="BusinessAddressDTO"/> to an instance of <see cref="BusinessAddress"/>. /// </summary> /// <param name="dto"><see cref="BusinessAddressDTO"/> to convert.</param> public static BusinessAddress ToEntity(this BusinessAddressDTO dto) { if (dto == null) { return(null); } var entity = new BusinessAddress(); entity.BusinessAddressID = dto.BusinessAddressID; entity.BusinessID = dto.BusinessID; entity.AddressID = dto.AddressID; entity.IsPrimary = dto.IsPrimary; dto.OnEntity(entity); return(entity); }
public HttpResponseMessage Post(SubmissionViewModel model) { if (ModelState.IsValid) //always returning true { string testInLive = model.RunMode; bool mode = testInLive.Equals("1") ? true : false; var sender = new Sender { Title = model.BussinessViewModel.Sender.Title, ForName1 = model.BussinessViewModel.Sender.ForName1, ForName2 = model.BussinessViewModel.Sender.ForName2, SurName = model.BussinessViewModel.Sender.SurName, Email = model.BussinessViewModel.Sender.Email, AddressLine1 = model.BussinessViewModel.Sender.AddressLine1, AddressLine2 = model.BussinessViewModel.Sender.AddressLine2, AddressLine3 = model.BussinessViewModel.Sender.AddressLine3, Postcode = model.BussinessViewModel.Sender.Postcode, SenderPassword = model.BussinessViewModel.Sender.SenderPassword, Type = model.BussinessViewModel.Sender.Type, Mobile = model.BussinessViewModel.Sender.Mobile, Telephone = model.BussinessViewModel.Sender.Telephone, HMRCPassword = model.BussinessViewModel.Sender.HMRCPassword, HMRCUserId = model.BussinessViewModel.Sender.HMRCUserId, Country = model.BussinessViewModel.Sender.Country, SenderId = model.BussinessViewModel.Sender.SenderId }; var address = new BusinessAddress { Line1 = model.BussinessViewModel.BusinessAddress.Line1, Line2 = model.BussinessViewModel.BusinessAddress.Line2, Line3 = model.BussinessViewModel.BusinessAddress.Line3, Line4 = model.BussinessViewModel.BusinessAddress.Line4, Country = model.BussinessViewModel.BusinessAddress.Country, Postcode = model.BussinessViewModel.BusinessAddress.Postcode, BusinessAddressId = model.BussinessViewModel.BusinessAddress.BusinessAddressId }; var business = new Business { BusinessName = model.BussinessViewModel.BusinessName, RegisteredDate = model.BussinessViewModel.RegisteredDate, VATRegNo = model.BussinessViewModel.VATRegNo, TradingName = model.BussinessViewModel.TradingName, BusinessId = model.BussinessViewModel.BusinessId, RegNo = model.BussinessViewModel.RegNo, VATRate = model.BussinessViewModel.VATRate, SenderId = model.BussinessViewModel.SenderId }; var perioddata = new PeriodData { PeriodrefId = model.PeriodViewModel.PeriodRefId, StartPeriod = model.PeriodViewModel.StartPeriod, EndPeriod = model.PeriodViewModel.EndPeriod, PeriodId = model.PeriodViewModel.PeriodId, BusinessId = model.BussinessViewModel.BusinessId }; var vatData = new VAT100() { Box1 = model.VAT100ViewModel.VATDueOnOutputs.ToString("N"), Box2 = model.VAT100ViewModel.VATDueOnECAcquisitions.ToString("N"), Box3 = model.VAT100ViewModel.TotalVAT.ToString("N"), Box4 = model.VAT100ViewModel.VATReclaimedOnInputs.ToString("N"), Box5 = model.VAT100ViewModel.NetVAT.ToString("N"), Box6 = model.VAT100ViewModel.NetSalesAndOutputs.ToString(), Box7 = model.VAT100ViewModel.NetPurchasesAndInputs.ToString(), Box8 = model.VAT100ViewModel.NetECSupplies.ToString(), Box9 = model.VAT100ViewModel.NetECAcquisitions.ToString(), LastUpdated = model.VAT100ViewModel.LastUpdated }; SubmissionManager submissionmanager = new SubmissionManager(_gatewayService); //create govtalk message var submissionResponse = submissionmanager.SendSubmissionRequest(sender, business, perioddata, vatData, mode); //read correlationId and poll uri from response //TODO: every time it fails delete the request and resubmit on sucess capt response and send back to client // List<Object> responses = new List<Object>(); Dictionary <string, List <XElement> > dicresponses = new Dictionary <string, List <XElement> >(); if (submissionResponse.Errors.Count == 0) { //submission passes send poll request string correlationId = submissionResponse.CorrelationId.ToString(); string polluri = submissionResponse.FollowOnUri.ToString(); if (!(String.IsNullOrEmpty(correlationId) && String.IsNullOrEmpty(polluri))) { var pollResponse = submissionmanager.SendPollRequest(correlationId, polluri, mode); if (pollResponse.Errors.Count == 0) { //success get success response perioddata.Status = SubmissionStatus.Accepted; //update status as accepted by HMRC and VAT info in the vat table perioddata.VAT100 = vatData; // attaching new vat data to update //perioddata.HmrcResponses.Add(pollResponse); var nextQuaterStartDate = submissionmanager.AddMonthsCustom(perioddata.StartPeriod, 3); var nextQuaterEndDate = submissionmanager.AddMonthsCustom(perioddata.EndPeriod, 3); var nextPeriod = new PeriodData() { StartPeriod = nextQuaterStartDate, EndPeriod = nextQuaterEndDate, BusinessId = business.BusinessId, PeriodrefId = nextQuaterEndDate.ToString("yyyy-MM"), Status = SubmissionStatus.Draft }; business.BusinessAddress = address; business.Sender = sender; business.NextQuaterStartDate = nextQuaterStartDate; //update bussiness model props with next quater start and end dates business.NextQuaterEndDate = nextQuaterEndDate; perioddata.HmrcResponses.Add(pollResponse); business.Periods.Add(perioddata); business.Periods.Add(nextPeriod); _gatewayService.UpdateEntities(business); // _gatewayService.Save(pollResponse); var strContent = HelperMethods.ExtractBodyContent(pollResponse.ResponseData.ToString()); var successResponse = HelperMethods.Deserialize <SuccessResponse>(strContent); //save the response in the DB //_gatewayService.AddNextQuaterPeriod(nextPeriod); //Add next VAT quater in the database //business.Periods.Add(nextPeriod); //_gatewayService.UpdateNextQuaterInBVM(business); // _gatewayService.SaveResponse(successResponse); // commit to DB after adding all above objects to repositories //if (successResponse != null) //{ //TODO: serialise sucessresponse, sucessresponseirmark, message type var str = HelperMethods.Serialize(successResponse); var xdoc = XDocument.Parse(str, LoadOptions.PreserveWhitespace); ////select only body element from xdoc var hmrcresponsemsgnode = (from d in xdoc.Descendants() where d.Name.LocalName == "Message" select d).ToList(); var vatperiodnode = (from m in xdoc.Descendants() where m.Name.LocalName == "VATPeriod" select m).ToList(); var paymentBodyNode = (from p in xdoc.Descendants() where p.Name.LocalName == "Body" select p).ToList(); var errorsNode = (from p in xdoc.Descendants() where p.Name.LocalName == "Error" select p).ToList(); dicresponses.Add("hmrcResponse", hmrcresponsemsgnode); dicresponses.Add("vatPeriod", vatperiodnode); dicresponses.Add("paymentDetails", paymentBodyNode); dicresponses.Add("Errors", errorsNode); //responses.Add(successResponse); return(Request.CreateResponse <Dictionary <string, List <XElement> > >(HttpStatusCode.OK, dicresponses)); } else { //failure bus valid failed handle here //delete the request and resubmit as new request as mentioned in the gov site submissionmanager.SendDeleteRequest(correlationId, mode, polluri); var temp = XDocument.Parse(pollResponse.ResponseData); var pollerrors = (from p in temp.Descendants() where p.Name.LocalName == "Error" select p).ToList(); dicresponses.Add("Errors", pollerrors); // responses.Add(pollResponse); } } else { //id or uri is null // responses.Add(submissionResponse); var temp = XDocument.Parse(submissionResponse.ResponseData); var submissionerrors = (from p in temp.Descendants() where p.Name.LocalName == "Error" select p).ToList(); dicresponses.Add("Errors", submissionerrors); return(Request.CreateResponse <Dictionary <string, List <XElement> > >(HttpStatusCode.BadRequest, dicresponses)); } } else { //return submission failure response // responses.Add(submissionResponse); var temp = XDocument.Parse(submissionResponse.ResponseData); var submissionerrors = (from p in temp.Descendants() where p.Name.LocalName == "Error" select p).ToList(); dicresponses.Add("Errors", submissionerrors); } return(Request.CreateResponse <Dictionary <string, List <XElement> > >(HttpStatusCode.OK, dicresponses)); } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); //} //throw new HttpResponseException(new HttpResponseMessage { StatusCode = HttpStatusCode.BadRequest, ReasonPhrase = "data is null" }); }
public BusinessAddress GetBusinessAddress(int id) { BusinessAddress businessAddress = db.BusinessAddresses.Find(id); return(businessAddress); }
/// <summary> /// Invoked when <see cref="ToEntity"/> operation is about to return. /// </summary> /// <param name="entity"><see cref="BusinessAddress"/> converted from <see cref="BusinessAddressDTO"/>.</param> static partial void OnEntity(this BusinessAddressDTO dto, BusinessAddress entity) { }
public BusinessAddress GetBusinessAddress(int id) { BusinessAddress businessAddress = db.BusinessAddresses.Include(p => p.Address).FirstOrDefault(p => p.BusinessAddressID == id); return(businessAddress); }
/// <summary> /// Invoked when <see cref="ToDTO"/> operation is about to return. /// </summary> /// <param name="dto"><see cref="BusinessAddressDTO"/> converted from <see cref="BusinessAddress"/>.</param> static partial void OnDTO(this BusinessAddress entity, BusinessAddressDTO dto);
static void Main(string[] args) { using (var ctx = new ASAEntitiesContext()) { //Sender sen = new Sender() //{ // Title = "mr", // ForName1 = "Sat", // ForName2 = "Ch", // SurName = "Gat", // Email = "*****@*****.**", // AddressLine1 = "awdas", // AddressLine2 = "asdasdsa", // AddressLine3 = "www", // Country = "UK", // Postcode = "E11", // Mobile = "01111", // SenderPassword = "******", // Telephone = "5131", // Type = SenderType.Individual, // HMRCUserId = "VATDEC180a01", // HMRCPassword = "******" //}; //ctx.Sender.Add(sen); //ctx.SaveChanges(); GovTalkMessage msg = new GovTalkMessage() { }; //SuccessResponseIRmarkReceipt ir = new SuccessResponseIRmarkReceipt //{ //}; //SuccessResponse resp = new SuccessResponse() //{ // //IRmarkReceipt = ir, // AcceptedTime = DateTime.Now, // AcceptedTimeSpecified = true, // ResponseData_IsEmpty = true, //}; //ctx.SucessResponse.Add(resp); ctx.SaveChanges(); Client clt = new Client() { Name = "London Borough Of Redbride", RegNo = "Reg123456789", VATNo = "VAT123456" }; ctx.Client.Add(clt); ctx.SaveChanges(); Business bu = new Business() { BusinessName = "TEST", BusinessId = 1, TradingName = "TEST", RegisteredDate = DateTime.Now, VATRegNo = "123456", SenderId = 1 }; BusinessAddress bud = new BusinessAddress() { Line1 = "test", Line2 = "test2", Line3 = "test3", Line4 = "test5", Postcode = "IG1", Country = "UK" }; bu.BusinessAddress = bud; //ctx.BusinessAddress.Add(bud); //ctx.Business.Add(bu); // ctx.SaveChanges(); PeriodData per = new PeriodData() { StartPeriod = DateTime.Now.AddMonths(-3), EndPeriod = DateTime.Now, PeriodrefId = "2017-04", Status = SubmissionStatus.Draft }; VAT100 vat = new VAT100() { }; //per.VAT100 = vat; bu.Periods.Add(per); Client cl = new Client() { //Id = 1, Name = "consoleC", RegNo = "123", VATNo = "1234567" }; ClientAddress cd = new ClientAddress() { Address1 = "First line of add", Address2 = "Second line of add", City = "Lonodn", ClientAddressId = 1, Country = "UK", PostCode = "SS1", }; PeriodData per1 = new PeriodData() { StartPeriod = DateTime.Now.AddMonths(-3), EndPeriod = DateTime.Now, PeriodrefId = "2017-07", Status = SubmissionStatus.Draft }; bu.Periods.Add(per1); //works above cl.ClientAddress = cd; //ctx.Client.Add(cl); //ctx.SaveChanges(); //ctx.SaveChanges(); //var cup = ctx.ClientAddress.FirstOrDefault(); //cup.Address1 = "New Update address"; //var c = ctx.Client.FirstOrDefault(); //c.ClientAddress = cup; //ctx.Client.Add(c); // ctx.Client.Add(cl); InvoiceDetail invd = new InvoiceDetail(); invd.No = "LBR-1"; invd.IssueDate = DateTime.Now; invd.DueDate = DateTime.Now.AddDays(7); invd.Note = "test"; invd.Ref = "nothing"; invd.Discount = "10%"; InvoiceItem item = new InvoiceItem(); var itemguid = Guid.Parse("00000000-0000-0000-0000-000000000000"); item.Id = itemguid; item.Description = "apple"; item.Quantity = "1"; item.Price = "1"; item.Total = "1"; item.SubTotal = "1"; item.VAT = "0"; item.VATRate = "0"; List <InvoiceItem> items = new List <InvoiceItem>(); items.Add(item); var myguid = Guid.Parse("3551A09E-DE21-A325-6DF4-40281A4FEBE0"); //var inv = ctx.Invoice.Where(i => i.InvoiceId == myguid) // .Include(d => d.InvoiceDetail) // .Include(it => it.InvoiceItems) // .FirstOrDefault(); //ctx.Entry(inv).CurrentValues.SetValues(inv); //foreach (var it in items) //{ // var existingChild = inv.InvoiceItems.Where(c => c.Id == it.Id).SingleOrDefault(); // if(existingChild!=null) // { // ctx.Entry(existingChild).CurrentValues.SetValues(it); // } // else // { // Console.WriteLine("add new item"); // inv.InvoiceItems.Add(item); // } //} //ctx.Entry(inv).State = EntityState.Modified; //Invoice myinvoice = new Invoice(); //myinvoice.ClientId = 3; //myinvoice.InvoiceDetail = invd; //myinvoice.InvoiceItems = items; //ctx.Invoice.Add(myinvoice); //ctx.SaveChanges(); // bu.Periods.Add(per1); // ctx.Business.Add(bu); //cl.ClientAddress = cd; //ctx.Client.Add(cl); //ctx.SaveChanges(); } }
public static BusinessAddress Translate(DataRow row) { var address = new BusinessAddress(); try { address.BusinessId = F1Business.GetCompanyAsPersonId(row.Field <int>("HOUSEHOLD_ID")); address.Street1 = row.Field <string>("address_1"); address.Street2 = row.Field <string>("address_2"); address.City = row.Field <string>("city"); address.State = row.Field <string>("state"); address.PostalCode = row.Field <string>("Postal_Code"); address.Country = row.Field <string>("country"); var addressType = row.Field <string>("address_type"); switch (addressType) { case "Primary": { address.AddressType = AddressType.Home; address.IsMailing = true; break; } case "Previous": { address.AddressType = AddressType.Previous; break; } case "Business": { address.AddressType = AddressType.Work; break; } case "Mail Returned / Incorrect": { address.AddressType = AddressType.Other; break; } default: { address.AddressType = AddressType.Other; break; } } // only add the address if we have a valid address if (address.Street1.IsNotNullOrWhitespace() && address.City.IsNotNullOrWhitespace() && address.PostalCode.IsNotNullOrWhitespace()) { return(address); } return(null); } catch { return(null); } }
public void Submission_SendRequest() { //Arrange //Fake input params var sen = new Sender { Title = "Mr", ForName1 = "Sat", ForName2 = "aa", SurName = "Gat", AddressLine1 = "133Gleny", AddressLine2 = "Barking", Postcode = "Ig11", Country = "UK", Email = "*****@*****.**", Mobile = "0123456789", HMRCUserId = "VATDEC180a01", SenderPassword = "******" }; var bus = new Business { BusinessName = "ABC", RegisteredDate = DateTime.Parse("07-04-2017"), TradingName = "ABC", VATRegNo = "999900001", }; var add = new BusinessAddress { Line1 = "1 First Add", Line2 = "2 Second add", Line3 = "3 Third", Postcode = "Ig11", Country = "UK" }; // bus.AddressList.Add(add); var per = new PeriodData { PeriodrefId = "201701", StartPeriod = DateTime.Parse("07-04-2017"), EndPeriod = DateTime.Parse("31-07-2017") }; var vat = new VAT100 { Box1 = "1.50", Box2 = "0.50", Box3 = "2.00", Box4 = "2.00", Box5 = "0.00", Box6 = "20", Box7 = "10", Box8 = "10", Box9 = "5" }; //Arrange //var sm = new SubmissionManager(_gatewayService); // var test = sm.SendSubmissionRequest(sen, bus, per, vat, true); //Act //var govtalkmessage = _gatewayService.CreateGovTalkMessage(sen, bus, per, vat, true); // var strGovTalkMessage = HelperMethods.GovTalkMessageToXDocument(govtalkmessage).ToString(); ////generate irmark from govtalk message //byte[] bytes = Encoding.UTF8.GetBytes(strGovTalkMessage); // var irmark = HelperMethods.GetIRMark(bytes); // var xdoc = XDocument.Parse(strGovTalkMessage, LoadOptions.PreserveWhitespace); //set irmark value in the doc // if (irmark!=null) // { // XNamespace ns = xdoc.Root.Name.Namespace; // XElement body = xdoc.Root.Element(ns + "Body"); // if (body != null) // { // var bodyElelemts = from el in body.Descendants() // where el.Name.LocalName == "IRenvelope" // select el; // foreach (var ele in bodyElelemts) // { // XNamespace ns1 = ele.Name.Namespace; // var element = ele.Descendants(ns1 + "IRmark").First(); // if (element != null) // { // element.Value = irmark; // } // } // } // } // string strSendRequest = xdoc.ToString(); //TODO: Need to validate the xml before sending to gateway but this seems to be complicate yet as //this needs to be validate individual classes irenvelope and vat payload and govtlak envelope so for future //http://stackoverflow.com/questions/751511/validating-an-xml-against-referenced-xsd-in-c-sharp // bool result = HelperMethods.IsValidXml(strSendRequest, @"C:\Temp\ASA.API\ASA.Core\XSDs\envelope-v2-0-HMRC.xsd", "http://www.govtalk.gov.uk/CM/envelope"); //var submissionResponse = sm.SendSubmissionRequest(sen, bus, per, vat, true); //var erorrs = submissionResponse.Errors.Count; string correlationId = "585F0728964645B2A944B4410D0EF5A8"; string polluri = "https://secure.dev.gateway.gov.uk/poll"; var govTalkMessageForPoll = _gatewayService.CreateGovTalkMessageForPollRequest(correlationId, polluri, true); var pollreq = HelperMethods.GoVTalkMessageToXDocumentForPoll(govTalkMessageForPoll); var pollStr = pollreq.ToString(); var pollresponse = _gatewayService.SendHMRCMessage(pollStr, polluri); var strContent = HelperMethods.ExtractBodyContent(pollresponse.ResponseData.ToString()); var successResponse = HelperMethods.Deserialize <SuccessResponse>(strContent); var str = HelperMethods.Serialize(successResponse); var doc = XDocument.Parse(str, LoadOptions.PreserveWhitespace); ////select only body element from xdoc XNamespace nsr = "http://www.govtalk.gov.uk/taxation/vat/vatdeclaration/2"; var hmrcresponsemsgnode = (from d in doc.Descendants() where d.Name.LocalName == "Message" select d).ToList(); var messagedetailsnode = (from m in doc.Descendants() where m.Name.LocalName == "AcceptedTime" select m).ToList(); var paymentBodyNode = (from p in doc.Descendants() where p.Name.LocalName == "Body" select p).ToList(); List <XElement> col = new List <XElement>(); col.AddRange(hmrcresponsemsgnode); col.AddRange(messagedetailsnode); col.AddRange(paymentBodyNode); Dictionary <string, List <XElement> > dic = new Dictionary <string, List <XElement> >(); dic.Add("hmrcResponseNode", hmrcresponsemsgnode); dic.Add("password", messagedetailsnode); dic.Add("plan_id", paymentBodyNode); //Asset // Assert.IsInstanceOfType(govtalkmessage, typeof(GovTalkMessage)); //check if the object is govTalkMessage //Assert.IsTrue(result); //validate generated xml // Assert.AreEqual(erorrs, 0); }
/// <summary> /// Writes to package. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="model">The model.</param> public static void WriteToPackage <T>(T model) { var typeName = model.GetType().Name; if (model is IImportModel) { var importModel = ( IImportModel )model; // check if a textwriter is needed for this model type if (!textWriters.ContainsKey(typeName)) { if (!Directory.Exists(_packageDirectory)) { InitalizePackageFolder(); } textWriters.Add(typeName, ( TextWriter )File.CreateText($@"{_packageDirectory}\{importModel.GetFileName()}")); // if model is for person create related writers if (importModel is Person) { // person attributes var personAttributeValue = new PersonAttributeValue(); textWriters.Add(personAttributeValue.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{personAttributeValue.GetFileName()}")); // person phones var personPhone = new PersonPhone(); textWriters.Add(personPhone.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{personPhone.GetFileName()}")); // person addresses var personAddress = new PersonAddress(); textWriters.Add(personAddress.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{personAddress.GetFileName()}")); // person search key var personSearchKey = new PersonSearchKey(); textWriters.Add(personSearchKey.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{personSearchKey.GetFileName()}")); } if (importModel is PersonAttributeValue) { var personAttributeValue = new PersonAttributeValue(); textWriters.Add(personAttributeValue.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{personAttributeValue.GetFileName()}")); } // if model is for financial batch create related writers if (importModel is FinancialBatch) { // financial transactions var financialTransaction = new FinancialTransaction(); textWriters.Add(financialTransaction.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{financialTransaction.GetFileName()}")); // financial transation details var financialTransactionDetail = new FinancialTransactionDetail(); textWriters.Add(financialTransactionDetail.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{financialTransactionDetail.GetFileName()}")); } // if model is for financial transaction create related writers if (importModel is FinancialTransaction) { // financial transation details var financialTransactionDetail = new FinancialTransactionDetail(); textWriters.Add(financialTransactionDetail.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{financialTransactionDetail.GetFileName()}")); } // if model is for group create related writers if (importModel is Group) { // group member var groupMember = new GroupMember(); textWriters.Add(groupMember.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{groupMember.GetFileName()}")); // group attributes var groupAttributeValue = new GroupAttributeValue(); textWriters.Add(groupAttributeValue.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{groupAttributeValue.GetFileName()}")); // group addresses var groupAddress = new GroupAddress(); textWriters.Add(groupAddress.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{groupAddress.GetFileName()}")); } // if model is for business create related writers if (importModel is Business) { // business attributes var businessAttributeValue = new BusinessAttributeValue(); textWriters.Add(businessAttributeValue.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{businessAttributeValue.GetFileName()}")); // business phones var businessPhone = new BusinessPhone(); textWriters.Add(businessPhone.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{businessPhone.GetFileName()}")); // business addresses var businessAddress = new BusinessAddress(); textWriters.Add(businessAddress.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{businessAddress.GetFileName()}")); // business contacts var businessContact = new BusinessContact(); textWriters.Add(businessContact.GetType().Name, ( TextWriter )File.CreateText($@"{_packageDirectory}\{businessContact.GetFileName()}")); } } var txtWriter = textWriters[typeName]; // check if a csvwriter is needed for this model type if (!csvWriters.ContainsKey(typeName)) { var newCsvWriter = new CsvWriter(txtWriter); csvWriters.Add(typeName, newCsvWriter); newCsvWriter.WriteHeader <T>(); //newCsvWriter.Configuration.QuoteAllFields = true; // if model is for person create related writers if (importModel is Person) { // person attributes var personAttributeValue = new PersonAttributeValue(); var newPersonAttributeValueCsvWriter = new CsvWriter(textWriters[personAttributeValue.GetType().Name]); csvWriters.Add(personAttributeValue.GetType().Name, newPersonAttributeValueCsvWriter); newPersonAttributeValueCsvWriter.WriteHeader <PersonAttributeValue>(); // person phones var personPhone = new PersonPhone(); var newPersonPhoneCsvWriter = new CsvWriter(textWriters[personPhone.GetType().Name]); csvWriters.Add(personPhone.GetType().Name, newPersonPhoneCsvWriter); newPersonPhoneCsvWriter.WriteHeader <PersonPhone>(); // person addresses var personAddress = new PersonAddress(); var newPersonAddressCsvWriter = new CsvWriter(textWriters[personAddress.GetType().Name]); csvWriters.Add(personAddress.GetType().Name, newPersonAddressCsvWriter); newPersonAddressCsvWriter.WriteHeader <PersonAddress>(); // person search keys var personSearchKey = new PersonSearchKey(); var newPersonSearchKeyCsvWriter = new CsvWriter(textWriters[personSearchKey.GetType().Name]); csvWriters.Add(personSearchKey.GetType().Name, newPersonSearchKeyCsvWriter); newPersonSearchKeyCsvWriter.WriteHeader <PersonSearchKey>(); } if (importModel is PersonAttributeValue) { var personAttributeValue = new PersonAttributeValue(); var newPersonAttributeValueCsvWriter = new CsvWriter(textWriters[personAttributeValue.GetType().Name]); csvWriters.Add(personAttributeValue.GetType().Name, newPersonAttributeValueCsvWriter); newPersonAttributeValueCsvWriter.WriteHeader <PersonAttributeValue>(); } // if model is for financial batch create related writers if (importModel is FinancialBatch) { // financial transaction var financialTransaction = new FinancialTransaction(); var newFinancialTransactionCsvWriter = new CsvWriter(textWriters[financialTransaction.GetType().Name]); csvWriters.Add(financialTransaction.GetType().Name, newFinancialTransactionCsvWriter); newFinancialTransactionCsvWriter.WriteHeader <FinancialTransaction>(); // financial transaction detail var financialTransactionDetail = new FinancialTransactionDetail(); var newFinancialTransactionDetailCsvWriter = new CsvWriter(textWriters[financialTransactionDetail.GetType().Name]); csvWriters.Add(financialTransactionDetail.GetType().Name, newFinancialTransactionDetailCsvWriter); newFinancialTransactionDetailCsvWriter.WriteHeader <FinancialTransactionDetail>(); } //if model is for financial transaction, create related writers if (importModel is FinancialTransaction) { // financial transaction detail var financialTransactionDetail = new FinancialTransactionDetail(); var newFinancialTransactionDetailCsvWriter = new CsvWriter(textWriters[financialTransactionDetail.GetType().Name]); csvWriters.Add(financialTransactionDetail.GetType().Name, newFinancialTransactionDetailCsvWriter); newFinancialTransactionDetailCsvWriter.WriteHeader <FinancialTransactionDetail>(); } // if model is for group create related writers if (importModel is Group) { // group member var groupMember = new GroupMember(); var newGroupMemberCsvWriter = new CsvWriter(textWriters[groupMember.GetType().Name]); csvWriters.Add(groupMember.GetType().Name, newGroupMemberCsvWriter); newGroupMemberCsvWriter.WriteHeader <GroupMember>(); // group attributes var groupAttributeValue = new GroupAttributeValue(); var newGroupAttributeValueCsvWriter = new CsvWriter(textWriters[groupAttributeValue.GetType().Name]); csvWriters.Add(groupAttributeValue.GetType().Name, newGroupAttributeValueCsvWriter); newGroupAttributeValueCsvWriter.WriteHeader <GroupAttributeValue>(); // group addresses var groupAddress = new GroupAddress(); var newGroupAddressCsvWriter = new CsvWriter(textWriters[groupAddress.GetType().Name]); csvWriters.Add(groupAddress.GetType().Name, newGroupAddressCsvWriter); newGroupAddressCsvWriter.WriteHeader <GroupAddress>(); } // if model is for business create related writers if (importModel is Business) { // business attributes var businessAttributeValue = new BusinessAttributeValue(); var newBusinessAttributeValueCsvWriter = new CsvWriter(textWriters[businessAttributeValue.GetType().Name]); csvWriters.Add(businessAttributeValue.GetType().Name, newBusinessAttributeValueCsvWriter); newBusinessAttributeValueCsvWriter.WriteHeader <BusinessAttributeValue>(); // business phones var businessPhone = new BusinessPhone(); var newBusinessPhoneCsvWriter = new CsvWriter(textWriters[businessPhone.GetType().Name]); csvWriters.Add(businessPhone.GetType().Name, newBusinessPhoneCsvWriter); newBusinessPhoneCsvWriter.WriteHeader <BusinessPhone>(); // business addresses var businessAddress = new BusinessAddress(); var newBusinessAddressCsvWriter = new CsvWriter(textWriters[businessAddress.GetType().Name]); csvWriters.Add(businessAddress.GetType().Name, newBusinessAddressCsvWriter); newBusinessAddressCsvWriter.WriteHeader <BusinessAddress>(); // business Contacts var businessContacts = new BusinessContact(); var newBusinessContactsCsvWriter = new CsvWriter(textWriters[businessContacts.GetType().Name]); csvWriters.Add(businessContacts.GetType().Name, newBusinessContactsCsvWriter); newBusinessContactsCsvWriter.WriteHeader <BusinessContact>(); } } var csvWriter = csvWriters[typeName]; csvWriter.WriteRecord <T>(model); // if person model write out any related models if (importModel is Person) { // person attributes var personAttributeValue = new PersonAttributeValue(); var csvPersonAttributeValueWriter = csvWriters[personAttributeValue.GetType().Name]; if (csvPersonAttributeValueWriter != null) { foreach (var attribute in (( Person )importModel).Attributes) { csvPersonAttributeValueWriter.WriteRecord(attribute); } } // person phones var personPhone = new PersonPhone(); var csvPersonPhoneWriter = csvWriters[personPhone.GetType().Name]; if (csvPersonPhoneWriter != null) { foreach (var phone in (( Person )importModel).PhoneNumbers) { csvPersonPhoneWriter.WriteRecord(phone); } } // person addresses var personAddress = new PersonAddress(); var csvPersonAddressWriter = csvWriters[personAddress.GetType().Name]; if (csvPersonAddressWriter != null) { foreach (var address in (( Person )importModel).Addresses) { if ((( Person )importModel).FamilyId.HasValue) { var familyAddress = new FamilyAddress { FamilyId = (( Person )importModel).FamilyId.Value, Street1 = address.Street1, PostalCode = address.PostalCode.Left(5) }; var index = _familyAddresses.FindIndex(a => a.FamilyId == (( Person )importModel).FamilyId.Value && a.Street1.Equals(address.Street1, StringComparison.OrdinalIgnoreCase) && a.PostalCode.Equals(address.PostalCode.Left(5))); if (index == -1) { _familyAddresses.Add(familyAddress); csvPersonAddressWriter.WriteRecord(address); } } else { csvPersonAddressWriter.WriteRecord(address); } } } // person search keys var personSearchKey = new PersonSearchKey(); var csvPersonSearchKeyWriter = csvWriters[personSearchKey.GetType().Name]; if (csvPersonSearchKeyWriter != null) { foreach (var searchKey in (( Person )importModel).PersonSearchKeys) { csvPersonSearchKeyWriter.WriteRecord(searchKey); } } } // if financial model write out any related models if (importModel is FinancialBatch) { // write out financial transactions and transaction details var financialTransaction = new FinancialTransaction(); var csvFinancialTransactionWriter = csvWriters[financialTransaction.GetType().Name]; var financialTransactionDetail = new FinancialTransactionDetail(); var csvFinancialTransactionDetailWriter = csvWriters[financialTransactionDetail.GetType().Name]; if (csvFinancialTransactionWriter != null && csvFinancialTransactionDetailWriter != null) { foreach (var transaction in (( FinancialBatch )importModel).FinancialTransactions) { csvFinancialTransactionWriter.WriteRecord(transaction); foreach (var transactionDetail in transaction.FinancialTransactionDetails) { csvFinancialTransactionDetailWriter.WriteRecord(transactionDetail); } } } } // if financial Transaction model write out any related models if (importModel is FinancialTransaction) { var financialTransactionDetail = new FinancialTransactionDetail(); var csvFinancialTransactionDetailWriter = csvWriters[financialTransactionDetail.GetType().Name]; if (csvFinancialTransactionDetailWriter != null) { foreach (var transactionDetail in (( FinancialTransaction )importModel).FinancialTransactionDetails) { csvFinancialTransactionDetailWriter.WriteRecord(transactionDetail); } } } // if group model write out any related models if (importModel is Group) { // group members var groupMember = new GroupMember(); var csvGroupMemberWriter = csvWriters[groupMember.GetType().Name]; if (csvGroupMemberWriter != null) { foreach (var groupMemberItem in (( Group )importModel).GroupMembers) { csvGroupMemberWriter.WriteRecord(groupMemberItem); } } // group attributes var groupAttributeValue = new GroupAttributeValue(); var csvGroupAttributeValueWriter = csvWriters[groupAttributeValue.GetType().Name]; if (csvGroupAttributeValueWriter != null) { foreach (var attribute in (( Group )importModel).Attributes) { csvGroupAttributeValueWriter.WriteRecord(attribute); } } // group addresses var groupAddress = new GroupAddress(); var csvGroupAddressWriter = csvWriters[groupAddress.GetType().Name]; if (csvGroupAddressWriter != null) { foreach (var address in (( Group )importModel).Addresses) { csvGroupAddressWriter.WriteRecord(address); } } } // if business model write out any related models if (importModel is Business) { // business attributes var personBusinessValue = new BusinessAttributeValue(); var csvBusinessAttributeValueWriter = csvWriters[personBusinessValue.GetType().Name]; if (csvBusinessAttributeValueWriter != null) { foreach (var attribute in (( Business )importModel).Attributes) { csvBusinessAttributeValueWriter.WriteRecord(attribute); } } // business phones var businessPhone = new BusinessPhone(); var csvBusinessPhoneWriter = csvWriters[businessPhone.GetType().Name]; if (csvBusinessPhoneWriter != null) { foreach (var phone in (( Business )importModel).PhoneNumbers) { csvBusinessPhoneWriter.WriteRecord(phone); } } // business addresses var businessAddress = new BusinessAddress(); var csvBusinessAddressWriter = csvWriters[businessAddress.GetType().Name]; if (csvBusinessAddressWriter != null) { foreach (var address in (( Business )importModel).Addresses) { csvBusinessAddressWriter.WriteRecord(address); } } // business contacts var businessContact = new BusinessContact(); var csvBusinessContactWriter = csvWriters[businessContact.GetType().Name]; if (csvBusinessContactWriter != null) { foreach (var contact in (( Business )importModel).Contacts) { csvBusinessAddressWriter.WriteRecord(contact); } } } } }
public AddressDisplay(Retailer retailer, BusinessAddress address) { _retailer = retailer; _address = address; }