Пример #1
0
 public static DataChangeEvent CreateDataChangeEvent(PersonRegistration pr)
 {
     return(new DataChangeEvent()
     {
         DataChangeEventId = Guid.NewGuid(), DueDate = DateTime.Now, PersonRegistrationId = pr.PersonRegistrationId, PersonUuid = pr.UUID, ReceivedDate = DateTime.Now
     });
 }
Пример #2
0
        public void TakeCopies(PersonRegistration dbReg, out string contentsXml, out string sourceXml)
        {
            var oioReg = PersonRegistration.ToXmlType(dbReg);

            oioReg.AttributListe.Egenskab[0].FoedestedNavn = null;
            contentsXml = Strings.SerializeObject(oioReg);

            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            doc.LoadXml(contentsXml);
            var nsmgr = new XmlNamespaceManager(new NameTable());

            nsmgr.AddNamespace("ns", "urn:oio:sagdok:2.0.0");
            var nodes = doc.SelectNodes("//ns:Virkning", nsmgr);

            Console.WriteLine("Nodes : {0}", nodes.Count);
            foreach (XmlNode node in nodes)
            {
                node.ParentNode.RemoveChild(node);
            }

            contentsXml = doc.ChildNodes[1].OuterXml;
            // Repeat serialization to avoid empty text
            oioReg      = Strings.Deserialize <RegistreringType1>(contentsXml);
            contentsXml = Strings.SerializeObject(oioReg);

            sourceXml = dbReg.SourceObjects.ToString();
        }
Пример #3
0
        public static bool ApplyRules(PersonRegistration dbReg, RegistreringType1 newReg, IEnumerable <MatchRule> matchRules)
        {
            var existingReg  = PersonRegistration.ToXmlType(dbReg);
            var appliedRules = new List <MatchRule>();

            // Attempt rule application to OIO objects
            foreach (var rule in matchRules)
            {
                if (rule.UpdateXmlTypeIfPossible(existingReg, newReg))
                {
                    appliedRules.Add(rule);
                }
            }

            if (appliedRules.Count > 0)
            {
                var existingXml = Strings.SerializeObject(existingReg);
                var newXml      = Strings.SerializeObject(newReg);

                if (string.Equals(existingXml, newXml))
                {
                    dbReg.BrokerUpdateDate = DateTime.Now;
                    dbReg.SetContents(newReg);
                    return(true);
                }
            }
            return(false);
        }
 public void CreateXQueryElements_MunicipalityCode_2([Values("851", "217", "905")] string municipalityCode)
 {
     var soegObject = new SoegObjektType()
     {
         SoegAttributListe = new SoegAttributListeType()
         {
             SoegRegisterOplysning = new RegisterOplysningType[]
             {
                 new RegisterOplysningType()
                 {
                     Item = new CprBorgerType()
                     {
                         FolkeregisterAdresse = new AdresseType()
                         {
                             Item = new DanskAdresseType()
                             {
                                 AddressComplete = new AddressCompleteType()
                                 {
                                     AddressAccess = new AddressAccessType()
                                     {
                                         MunicipalityCode = municipalityCode
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     };
     var ret = PersonRegistration.CreateXQueryElements(soegObject);
 }
Пример #5
0
 internal void Assign(PersonRegistration data)
 {
     this.firstName   = data.FirstName;
     this.lastName    = data.LastName;
     this.email       = data.Email;
     this.age         = data.Age;
     this.arrivalDate = data.ArrivalDate;
 }
Пример #6
0
        private void ToolStripButton2_Click(object sender, EventArgs e)
        {
            PersonRegistration personRegistration = new PersonRegistration();

            personRegistration.btnCancel.Enabled = false;
            personRegistration.btnUpdate.Enabled = false;
            personRegistration.ShowDialog();
        }
Пример #7
0
 public void Update(PersonRegistration data)
 {
     BindingList<PersonRegistration> list = GetList();
     foreach(PersonRegistration f in list) {
         if(f.Id == data.Id) {
             f.Assign(data);
             return;
         }
     }
 }
 PersonRegistration AddPersonRegistration(int id, string firstName, string lastName, int age, string email, DateTime arrivalDate)
 {
     PersonRegistration data = new PersonRegistration(id);
         data.FirstName = firstName;
         data.LastName = lastName;
         data.Age = age;
         data.Email = email;
         data.ArrivalDate = arrivalDate;
         return data;
 }
        public async Task <IActionResult> EditAsync([Bind(BindValues)] PersonRegistration personRegistration)
        {
            if (ModelState.IsValid)
            {
                await _personRegistrationService.UpdateItemAsync(personRegistration.id, personRegistration);

                return(RedirectToAction("Index"));
            }
            return(View(personRegistration));
        }
Пример #10
0
            public void ApplyRules_Empty_False()
            {
                var dbReg  = new PersonRegistration();
                var oioReg = new RegistreringType1();

                dbReg.SetContents(oioReg);
                var ret = MatchRule.ApplyRules(dbReg, oioReg, new MatchRule[0]);

                Assert.False(ret);
            }
        public async Task <IActionResult> CreateAsync([Bind(BindValuesCreate)] PersonRegistration personRegistration)
        {
            if (ModelState.IsValid)
            {
                personRegistration.id = Guid.NewGuid().ToString();
                await _personRegistrationService.AddItemAsync(personRegistration);

                return(RedirectToAction("Index"));
            }
            return(View(personRegistration));
        }
Пример #12
0
    PersonRegistration AddPersonRegistration(int id, string firstName, string lastName, int age, string email, DateTime arrivalDate)
    {
        PersonRegistration data = new PersonRegistration(id);

        data.FirstName   = firstName;
        data.LastName    = lastName;
        data.Age         = age;
        data.Email       = email;
        data.ArrivalDate = arrivalDate;
        return(data);
    }
Пример #13
0
            public void ApplyRules_IrrelevantRules_SameObject()
            {
                var dbReg  = new PersonRegistration();
                var oioReg = new RegistreringType1();

                dbReg.SetContents(oioReg);
                var xml1 = Strings.SerializeObject(dbReg);
                var ret  = MatchRule.ApplyRules(dbReg, oioReg);
                var xml2 = Strings.SerializeObject(dbReg);

                Assert.AreEqual(xml1, xml2);
            }
Пример #14
0
    public void Update(PersonRegistration data)
    {
        BindingList <PersonRegistration> list = GetList();

        foreach (PersonRegistration f in list)
        {
            if (f.Id == data.Id)
            {
                f.Assign(data);
                return;
            }
        }
    }
Пример #15
0
            public void UpdateXmlTypeIfPossible_Candidates_MethodCall()
            {
                var oioReg = new RegistreringType1();
                var dbReg  = new PersonRegistration();

                dbReg.SetContents(oioReg);
                bool ff   = false;
                var  rule = new DummyRule <object> {
                    _AreCandidates = true, _GetObject = "", _UpdateOioFromXmlType = (r1, r2) => ff = true
                };
                var ret = rule.UpdateXmlTypeIfPossible(oioReg, oioReg);

                Assert.True(ff);
            }
Пример #16
0
        public static PersonRegistration CreatePersonRegistration(Person person, string municipalityCode, Guid personRegistrationId, Guid uuid)
        {
            var personReg = Utils.CreateRegistreringType1(municipalityCode);
            var dbReg     = new PersonRegistration()
            {
                Person = person,
                UUID   = uuid,
                PersonRegistrationId = personRegistrationId,
                RegistrationDate     = DateTime.Now,
                BrokerUpdateDate     = DateTime.Now
            };

            dbReg.SetContents(personReg);
            return(dbReg);
        }
Пример #17
0
        public override void ProcessPerson(string pnr)
        {
            var  arr  = pnr.Split(',');
            Guid uuid = new Guid(arr[0]);
            Guid personRegistrationId = new Guid(arr[1]);

            using (var dataContext = new PartDataContext(this.BrokerConnectionString))
            {
                var dbReg = dataContext.PersonRegistrations.Where(pr => pr.UUID == uuid && pr.PersonRegistrationId == personRegistrationId).FirstOrDefault();
                var oio   = PersonRegistration.ToXmlType(dbReg);
                oio.OrderByStartDate(false);
                dbReg.SetContents(oio);
                dataContext.SubmitChanges();
            }
        }
Пример #18
0
 public void MergePersonRegistration_FromExisting_False(
     [Random(0, 99, 10)] int index)
 {
     using (var dataContext = new PartDataContext())
     {
         var dbPerson = dataContext.PersonRegistrations.Where(pr => pr.Person != null).Skip(index).First();
         var oio      = PersonRegistration.ToXmlType(dbPerson);
         var pId      = new PersonIdentifier()
         {
             UUID = dbPerson.UUID, CprNumber = dbPerson.Person.UserInterfaceKeyText
         };
         var ret = CprBroker.Engine.Local.UpdateDatabase.MergePersonRegistration(pId, oio, out personRegistrationId);
         Assert.False(ret);
     }
 }
Пример #19
0
            public void UpdateXmlTypeIfPossible_CandidatesWithNullObjects_False()
            {
                var oioReg = new RegistreringType1();
                var dbReg  = new PersonRegistration();

                dbReg.SetContents(oioReg);

                var rule = new DummyRule <RegistreringType1> {
                    _AreCandidates = true, _GetObject = null, _UpdateOioFromXmlType = (r1, r2) => r1.AttributListe = new AttributListeType()
                    {
                    }
                };
                var ret = rule.UpdateXmlTypeIfPossible(oioReg, oioReg);

                Assert.False(ret);
            }
Пример #20
0
        public FiltreretOejebliksbilledeType ReadPeriod(DateTime fromDate, DateTime toDate, PersonIdentifier pId, Func <string, Guid> cpr2uuidFunc)
        {
            var targetVirkning = VirkningType.Create(fromDate, toDate);

            using (var dataContext = new PartDataContext())
            {
                var oioRegs = dataContext
                              .PersonRegistrations
                              // TODO: Shall we also filter by ActorRef.Value to only include CPR Direct?
                              .Where(pr => pr.UUID == pId.UUID)
                              .OrderBy(pr => pr.RegistrationDate)
                              .Select(pr => PersonRegistration.ToXmlType(pr))
                              .ToArray();

                return(RegistreringType1.Merge(pId, targetVirkning, oioRegs));
            }
        }
Пример #21
0
            public void UpdateXmlTypeIfPossible_NoCandidates_NoChanges()
            {
                var oioReg = new RegistreringType1();
                var dbReg  = new PersonRegistration();

                dbReg.SetContents(oioReg);
                var xml1 = Strings.SerializeObject(dbReg);

                var rule = new DummyRule <RegistreringType1> {
                    _AreCandidates = false, _GetObject = null, _UpdateOioFromXmlType = (r1, r2) => r1.AttributListe = new AttributListeType()
                    {
                    }
                };
                var ret  = rule.UpdateXmlTypeIfPossible(oioReg, oioReg);
                var xml2 = Strings.SerializeObject(dbReg);

                Assert.AreEqual(xml1, xml2);
            }
Пример #22
0
        public Guid[] Search(CprBroker.Schemas.Part.SoegInputType1 searchCriteria)
        {
            Guid[] ret = null;
            using (var dataContext = new PartDataContext())
            {
                int firstResults = 0;
                int.TryParse(searchCriteria.FoersteResultatReference, out firstResults);

                int maxResults = 0;
                int.TryParse(searchCriteria.MaksimalAntalKvantitet, out maxResults);
                if (maxResults <= 0)
                {
                    maxResults = 1000;
                }

                var result = PersonRegistration.GetUuidsByCriteria(dataContext, searchCriteria.SoegObjekt, firstResults, maxResults);
                ret = result.ToArray();
            }
            // TODO: filter by effect date
            return(ret);
        }
            public void GetUuidsByCriteria_MunicipalityCode_5([Values("851")] string municipalityCode)
            {
                var soegObject = new SoegObjektType()
                {
                    SoegAttributListe = new SoegAttributListeType()
                    {
                        SoegRegisterOplysning = new RegisterOplysningType[]
                        {
                            new RegisterOplysningType()
                            {
                                Item = new CprBorgerType()
                                {
                                    FolkeregisterAdresse = new AdresseType()
                                    {
                                        Item = new DanskAdresseType()
                                        {
                                            AddressComplete = new AddressCompleteType()
                                            {
                                                AddressAccess = new AddressAccessType()
                                                {
                                                    MunicipalityCode = municipalityCode
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                };

                using (var dataContext = new PartDataContext())
                {
                    var ret = PersonRegistration.GetUuidsByCriteria(dataContext, soegObject, 0, 5).ToArray();
                    Assert.AreEqual(5, ret.Count());
                    var empty = ret.Where(r => r == null);
                    Assert.IsEmpty(empty);
                }
            }
Пример #24
0
        public override void ProcessPerson(string pnr)
        {
            using (var dataContext = new PartDataContext())
            {
                var pm  = dataContext.PersonMappings.Where(p => p.CprNumber == pnr).Single();
                var per = dataContext.Persons.Where(p => p.UUID == pm.UUID).SingleOrDefault();
                PersonRegistration[] regs = null;
                var actros = new List <ActorRef>();
                if (per != null)
                {
                    regs = per.PersonRegistrations.ToArray();
                    foreach (var reg in regs)
                    {
                        if (reg.SourceObjects != null)
                        {
                            throw new Exception("Source not null");
                        }

                        var oio = PersonRegistration.ToXmlType(reg);
                        if (oio.AttributListe != null || oio.RelationListe != null || oio.TilstandListe != null)
                        {
                            throw new Exception("Contents not empty");
                        }

                        actros.Add(reg.ActorRef);
                    }


                    // Now delete the records
                    dataContext.PersonRegistrations.DeleteAllOnSubmit(regs);
                    dataContext.ActorRefs.DeleteAllOnSubmit(actros);
                    dataContext.Persons.DeleteOnSubmit(per);
                    dataContext.PersonMappings.DeleteOnSubmit(pm);

                    dataContext.SubmitChanges();
                }
            }
        }
            public void GetUuidsByCriteria_MunicipalityCodeIndexOutOfRange_Zero([Values("851", "217", "905")] string municipalityCode)
            {
                var soegObject = new SoegObjektType()
                {
                    SoegAttributListe = new SoegAttributListeType()
                    {
                        SoegRegisterOplysning = new RegisterOplysningType[]
                        {
                            new RegisterOplysningType()
                            {
                                Item = new CprBorgerType()
                                {
                                    FolkeregisterAdresse = new AdresseType()
                                    {
                                        Item = new DanskAdresseType()
                                        {
                                            AddressComplete = new AddressCompleteType()
                                            {
                                                AddressAccess = new AddressAccessType()
                                                {
                                                    MunicipalityCode = municipalityCode
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                };

                using (var dataContext = new PartDataContext())
                {
                    var ret = PersonRegistration.GetUuidsByCriteria(dataContext, soegObject, 10000000, 10);
                    Assert.AreEqual(0, ret.Count());
                }
            }
Пример #26
0
 public async Task UpdateItemAsync(string id, PersonRegistration person)
 {
     await _container.UpsertItemAsync <PersonRegistration>(person, new PartitionKey(id));
 }
Пример #27
0
 public async Task AddItemAsync(PersonRegistration personRegistration)
 {
     await _container.CreateItemAsync <PersonRegistration>(personRegistration, new PartitionKey(personRegistration.id));
 }
Пример #28
0
 public abstract RegistreringType1 CreateXmlType(string pnr, PersonRegistration dbReg, Func <string, Guid> cpr2uuidFunc);
Пример #29
0
        public override CprBroker.Schemas.Part.RegistreringType1 CreateXmlType(string pnr, PersonRegistration dbReg, Func <string, Guid> cpr2uuidFunc)
        {
            var kmdResponse = Strings.Deserialize <KmdResponse>(dbReg.SourceObjects.ToString());
            var oioReg      = kmdResponse.ToRegistreringType1(cpr2uuidFunc);

            return(oioReg);
        }
Пример #30
0
 public void Insert(PersonRegistration data)
 {
     GetList().Add(data);
     data.Id = GetList().Count;
 }
 internal void Assign(PersonRegistration data)
 {
     this.firstName = data.FirstName;
         this.lastName = data.LastName;
         this.email = data.Email;
         this.age = data.Age;
         this.arrivalDate = data.ArrivalDate;
 }
 public void Insert(PersonRegistration data)
 {
     GetList().Add(data);
         data.Id = GetList().Count;
 }
Пример #33
0
        public ActionResult Create(JobWorkerViewModel JobWorkerVm)
        {
            string[] ProcessIdArr;
            if (JobWorkerVm.LedgerAccountGroupId == 0)
            {
                PrepareViewBag();
                return(View(JobWorkerVm).Danger("Account Group field is required"));
            }

            if (_PersonService.CheckDuplicate(JobWorkerVm.Name, JobWorkerVm.Suffix, JobWorkerVm.PersonId) == true)
            {
                PrepareViewBag();
                return(View(JobWorkerVm).Danger("Combination of name and sufix is duplicate"));
            }


            if (ModelState.IsValid)
            {
                if (JobWorkerVm.PersonId == 0)
                {
                    Person         person         = Mapper.Map <JobWorkerViewModel, Person>(JobWorkerVm);
                    BusinessEntity businessentity = Mapper.Map <JobWorkerViewModel, BusinessEntity>(JobWorkerVm);
                    JobWorker      JobWorker      = Mapper.Map <JobWorkerViewModel, JobWorker>(JobWorkerVm);
                    PersonAddress  personaddress  = Mapper.Map <JobWorkerViewModel, PersonAddress>(JobWorkerVm);
                    LedgerAccount  account        = Mapper.Map <JobWorkerViewModel, LedgerAccount>(JobWorkerVm);


                    person.CreatedDate  = DateTime.Now;
                    person.ModifiedDate = DateTime.Now;
                    person.CreatedBy    = User.Identity.Name;
                    person.ModifiedBy   = User.Identity.Name;
                    person.ObjectState  = Model.ObjectState.Added;
                    new PersonService(_unitOfWork).Create(person);


                    string Divisions = JobWorkerVm.DivisionIds;
                    if (Divisions != null)
                    {
                        Divisions = "|" + Divisions.Replace(",", "|,|") + "|";
                    }

                    businessentity.DivisionIds = Divisions;

                    string Sites = JobWorkerVm.SiteIds;
                    if (Sites != null)
                    {
                        Sites = "|" + Sites.Replace(",", "|,|") + "|";
                    }

                    businessentity.SiteIds = Sites;

                    _BusinessEntityService.Create(businessentity);
                    _JobWorkerService.Create(JobWorker);


                    personaddress.AddressType  = AddressTypeConstants.Work;
                    personaddress.CreatedDate  = DateTime.Now;
                    personaddress.ModifiedDate = DateTime.Now;
                    personaddress.CreatedBy    = User.Identity.Name;
                    personaddress.ModifiedBy   = User.Identity.Name;
                    personaddress.ObjectState  = Model.ObjectState.Added;
                    _PersonAddressService.Create(personaddress);


                    account.LedgerAccountName   = person.Name;
                    account.LedgerAccountSuffix = person.Suffix;
                    account.CreatedDate         = DateTime.Now;
                    account.ModifiedDate        = DateTime.Now;
                    account.CreatedBy           = User.Identity.Name;
                    account.ModifiedBy          = User.Identity.Name;
                    account.ObjectState         = Model.ObjectState.Added;
                    _AccountService.Create(account);

                    //if (JobWorkerVm.ProcessIds != null &&  JobWorkerVm.ProcessIds != "")
                    //{
                    //    ProcessIdArr = JobWorkerVm.ProcessIds.Split(new Char[] { ',' });

                    //    for (int i = 0; i <= ProcessIdArr.Length - 1; i++)
                    //    {
                    //        PersonProcess personprocess = new PersonProcess();
                    //        personprocess.PersonId = JobWorker.PersonID;
                    //        personprocess.ProcessId = Convert.ToInt32(ProcessIdArr[i]);
                    //        personprocess.CreatedDate = DateTime.Now;
                    //        personprocess.ModifiedDate = DateTime.Now;
                    //        personprocess.CreatedBy = User.Identity.Name;
                    //        personprocess.ModifiedBy = User.Identity.Name;
                    //        personprocess.ObjectState = Model.ObjectState.Added;
                    //        _PersonProcessService.Create(personprocess);
                    //    }
                    //}

                    if (JobWorkerVm.PanNo != "" && JobWorkerVm.PanNo != null)
                    {
                        PersonRegistration personregistration = new PersonRegistration();
                        personregistration.RegistrationType = PersonRegistrationType.PANNo;
                        personregistration.RegistrationNo   = JobWorkerVm.PanNo;
                        personregistration.CreatedDate      = DateTime.Now;
                        personregistration.ModifiedDate     = DateTime.Now;
                        personregistration.CreatedBy        = User.Identity.Name;
                        personregistration.ModifiedBy       = User.Identity.Name;
                        personregistration.ObjectState      = Model.ObjectState.Added;
                        _PersonRegistrationService.Create(personregistration);
                    }

                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        ModelState.AddModelError("", message);
                        PrepareViewBag();
                        return(View(JobWorkerVm));
                    }



                    #region

                    //Saving Images if any uploaded after UnitOfWorkSave

                    if (Request.Files[0] != null && Request.Files[0].ContentLength > 0)
                    {
                        //For checking the first time if the folder exists or not-----------------------------
                        string uploadfolder;
                        int    MaxLimit;
                        int.TryParse(ConfigurationManager.AppSettings["MaxFileUploadLimit"], out MaxLimit);
                        var x = (from iid in db.Counter
                                 select iid).FirstOrDefault();
                        if (x == null)
                        {
                            uploadfolder = System.Guid.NewGuid().ToString();
                            Counter img = new Counter();
                            img.ImageFolderName = uploadfolder;
                            img.ModifiedBy      = User.Identity.Name;
                            img.CreatedBy       = User.Identity.Name;
                            img.ModifiedDate    = DateTime.Now;
                            img.CreatedDate     = DateTime.Now;
                            new CounterService(_unitOfWork).Create(img);
                            _unitOfWork.Save();
                        }

                        else
                        {
                            uploadfolder = x.ImageFolderName;
                        }


                        //For checking if the image contents length is greater than 100 then create a new folder------------------------------------

                        if (!Directory.Exists(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)))
                        {
                            Directory.CreateDirectory(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder));
                        }

                        int count = Directory.GetFiles(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)).Length;

                        if (count >= MaxLimit)
                        {
                            uploadfolder = System.Guid.NewGuid().ToString();
                            var u = new CounterService(_unitOfWork).Find(x.CounterId);
                            u.ImageFolderName = uploadfolder;
                            new CounterService(_unitOfWork).Update(u);
                            _unitOfWork.Save();
                        }


                        //Saving Thumbnails images:
                        Dictionary <string, string> versions = new Dictionary <string, string>();

                        //Define the versions to generate
                        versions.Add("_thumb", "maxwidth=100&maxheight=100");  //Crop to square thumbnail
                        versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg

                        string temp2    = "";
                        string filename = System.Guid.NewGuid().ToString();
                        foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys)
                        {
                            HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey];
                            if (pfile.ContentLength <= 0)
                            {
                                continue;                           //Skip unused file controls.
                            }
                            temp2 = Path.GetExtension(pfile.FileName);

                            string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder);
                            if (!Directory.Exists(uploadFolder))
                            {
                                Directory.CreateDirectory(uploadFolder);
                            }

                            string filecontent = Path.Combine(uploadFolder, JobWorkerVm.Name + "_" + filename);

                            //pfile.SaveAs(filecontent);
                            ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true));


                            //Generate each version
                            foreach (string suffix in versions.Keys)
                            {
                                if (suffix == "_thumb")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, JobWorkerVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                                else if (suffix == "_medium")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, JobWorkerVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                            }

                            //var tempsave = _FinishedProductService.Find(pt.ProductId);

                            person.ImageFileName   = JobWorkerVm.Name + "_" + filename + temp2;
                            person.ImageFolderName = uploadfolder;
                            person.ObjectState     = Model.ObjectState.Modified;
                            _PersonService.Update(person);
                            _unitOfWork.Save();
                        }
                    }

                    #endregion



                    //return RedirectToAction("Create").Success("Data saved successfully");
                    return(RedirectToAction("Edit", new { id = JobWorker.PersonID }).Success("Data saved Successfully"));
                }
                else
                {
                    List <LogTypeViewModel> LogList = new List <LogTypeViewModel>();


                    //string tempredirect = (Request["Redirect"].ToString());
                    Person             person         = Mapper.Map <JobWorkerViewModel, Person>(JobWorkerVm);
                    BusinessEntity     businessentity = Mapper.Map <JobWorkerViewModel, BusinessEntity>(JobWorkerVm);
                    JobWorker          JobWorker      = Mapper.Map <JobWorkerViewModel, JobWorker>(JobWorkerVm);
                    PersonAddress      personaddress  = _PersonAddressService.Find(JobWorkerVm.PersonAddressID);
                    LedgerAccount      account        = _AccountService.Find(JobWorkerVm.AccountId);
                    PersonRegistration PersonPan      = _PersonRegistrationService.Find(JobWorkerVm.PersonRegistrationPanNoID);


                    PersonAddress ExRec = new PersonAddress();
                    ExRec = Mapper.Map <PersonAddress>(personaddress);

                    LedgerAccount ExRecLA = new LedgerAccount();
                    ExRecLA = Mapper.Map <LedgerAccount>(account);

                    PersonRegistration ExRecP = new PersonRegistration();
                    ExRecP = Mapper.Map <PersonRegistration>(PersonPan);


                    StringBuilder logstring = new StringBuilder();

                    person.ModifiedDate = DateTime.Now;
                    person.ModifiedBy   = User.Identity.Name;
                    new PersonService(_unitOfWork).Update(person);

                    string Divisions = JobWorkerVm.DivisionIds;
                    if (Divisions != null)
                    {
                        Divisions = "|" + Divisions.Replace(",", "|,|") + "|";
                    }

                    businessentity.DivisionIds = Divisions;

                    string Sites = JobWorkerVm.SiteIds;
                    if (Sites != null)
                    {
                        Sites = "|" + Sites.Replace(",", "|,|") + "|";
                    }

                    businessentity.SiteIds = Sites;

                    _BusinessEntityService.Update(businessentity);
                    _JobWorkerService.Update(JobWorker);

                    personaddress.Address      = JobWorkerVm.Address;
                    personaddress.CityId       = JobWorkerVm.CityId;
                    personaddress.Zipcode      = JobWorkerVm.Zipcode;
                    personaddress.ModifiedDate = DateTime.Now;
                    personaddress.ModifiedBy   = User.Identity.Name;
                    personaddress.ObjectState  = Model.ObjectState.Modified;
                    _PersonAddressService.Update(personaddress);

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRec,
                        Obj   = personaddress,
                    });


                    account.LedgerAccountName    = person.Name;
                    account.LedgerAccountSuffix  = person.Suffix;
                    account.LedgerAccountGroupId = JobWorkerVm.LedgerAccountGroupId;
                    account.ModifiedDate         = DateTime.Now;
                    account.ModifiedBy           = User.Identity.Name;
                    _AccountService.Update(account);

                    LogList.Add(new LogTypeViewModel
                    {
                        ExObj = ExRecLA,
                        Obj   = account,
                    });

                    //if (JobWorkerVm.ProcessIds != "" && JobWorkerVm.ProcessIds != null)
                    //{

                    //    IEnumerable<PersonProcess> personprocesslist = _PersonProcessService.GetPersonProcessList(JobWorkerVm.PersonId);

                    //    foreach (PersonProcess item in personprocesslist)
                    //    {
                    //        new PersonProcessService(_unitOfWork).Delete(item.PersonProcessId);
                    //    }



                    //    ProcessIdArr = JobWorkerVm.ProcessIds.Split(new Char[] { ',' });

                    //    for (int i = 0; i <= ProcessIdArr.Length - 1; i++)
                    //    {
                    //        PersonProcess personprocess = new PersonProcess();
                    //        personprocess.PersonId = JobWorker.PersonID;
                    //        personprocess.ProcessId = Convert.ToInt32(ProcessIdArr[i]);
                    //        personprocess.CreatedDate = DateTime.Now;
                    //        personprocess.ModifiedDate = DateTime.Now;
                    //        personprocess.CreatedBy = User.Identity.Name;
                    //        personprocess.ModifiedBy = User.Identity.Name;
                    //        personprocess.ObjectState = Model.ObjectState.Added;
                    //        _PersonProcessService.Create(personprocess);
                    //    }
                    //}

                    if (JobWorkerVm.PanNo != null && JobWorkerVm.PanNo != "")
                    {
                        if (PersonPan != null)
                        {
                            PersonPan.RegistrationNo = JobWorkerVm.PanNo;
                            _PersonRegistrationService.Update(PersonPan);

                            LogList.Add(new LogTypeViewModel
                            {
                                ExObj = ExRecP,
                                Obj   = PersonPan,
                            });
                        }
                        else
                        {
                            PersonRegistration personregistration = new PersonRegistration();
                            personregistration.PersonId         = JobWorkerVm.PersonId;
                            personregistration.RegistrationType = PersonRegistrationType.PANNo;
                            personregistration.RegistrationNo   = JobWorkerVm.PanNo;
                            personregistration.CreatedDate      = DateTime.Now;
                            personregistration.ModifiedDate     = DateTime.Now;
                            personregistration.CreatedBy        = User.Identity.Name;
                            personregistration.ModifiedBy       = User.Identity.Name;
                            personregistration.ObjectState      = Model.ObjectState.Added;
                            _PersonRegistrationService.Create(personregistration);
                        }
                    }


                    XElement Modifications = new ModificationsCheckService().CheckChanges(LogList);



                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        ModelState.AddModelError("", message);
                        PrepareViewBag();
                        return(View("Create", JobWorkerVm));
                    }

                    LogActivity.LogActivityDetail(new ActiivtyLogViewModel
                    {
                        DocTypeId       = new DocumentTypeService(_unitOfWork).FindByName(MasterDocCategoryConstants.JobWorker).DocumentTypeId,
                        DocId           = JobWorkerVm.PersonId,
                        ActivityType    = (int)ActivityTypeContants.Modified,
                        DocNo           = JobWorkerVm.Name,
                        xEModifications = Modifications,
                    });
                    //End of Saving ActivityLog


                    #region

                    //Saving Image if file is uploaded
                    if (Request.Files[0] != null && Request.Files[0].ContentLength > 0)
                    {
                        string uploadfolder = JobWorkerVm.ImageFolderName;
                        string tempfilename = JobWorkerVm.ImageFileName;
                        if (uploadfolder == null)
                        {
                            var x = (from iid in db.Counter
                                     select iid).FirstOrDefault();
                            if (x == null)
                            {
                                uploadfolder = System.Guid.NewGuid().ToString();
                                Counter img = new Counter();
                                img.ImageFolderName = uploadfolder;
                                img.ModifiedBy      = User.Identity.Name;
                                img.CreatedBy       = User.Identity.Name;
                                img.ModifiedDate    = DateTime.Now;
                                img.CreatedDate     = DateTime.Now;
                                new CounterService(_unitOfWork).Create(img);
                                _unitOfWork.Save();
                            }
                            else
                            {
                                uploadfolder = x.ImageFolderName;
                            }
                        }
                        //Deleting Existing Images

                        var xtemp = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename);
                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename));
                        }

                        //Deleting Thumbnail Image:

                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename));
                        }

                        //Deleting Medium Image:
                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename));
                        }

                        //Saving Thumbnails images:
                        Dictionary <string, string> versions = new Dictionary <string, string>();

                        //Define the versions to generate
                        versions.Add("_thumb", "maxwidth=100&maxheight=100");  //Crop to square thumbnail
                        versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg

                        string temp2    = "";
                        string filename = System.Guid.NewGuid().ToString();
                        foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys)
                        {
                            HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey];
                            if (pfile.ContentLength <= 0)
                            {
                                continue;                           //Skip unused file controls.
                            }
                            temp2 = Path.GetExtension(pfile.FileName);

                            string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder);
                            if (!Directory.Exists(uploadFolder))
                            {
                                Directory.CreateDirectory(uploadFolder);
                            }

                            string filecontent = Path.Combine(uploadFolder, JobWorkerVm.Name + "_" + filename);

                            //pfile.SaveAs(filecontent);

                            ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true));

                            //Generate each version
                            foreach (string suffix in versions.Keys)
                            {
                                if (suffix == "_thumb")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, JobWorkerVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                                else if (suffix == "_medium")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, JobWorkerVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                            }
                        }
                        var temsave = _PersonService.Find(person.PersonID);
                        temsave.ImageFileName   = temsave.Name + "_" + filename + temp2;
                        temsave.ImageFolderName = uploadfolder;
                        _PersonService.Update(temsave);
                        _unitOfWork.Save();
                    }

                    #endregion



                    return(RedirectToAction("Index").Success("Data saved successfully"));
                }
            }
            PrepareViewBag();
            return(View(JobWorkerVm));
        }
Пример #34
0
        public ActionResult Create(CourierViewModel CourierVm)
        {
            if (CourierVm.LedgerAccountGroupId == 0)
            {
                PrepareViewBag();
                return(View(CourierVm).Danger("Account Group field is required"));
            }

            if (_PersonService.CheckDuplicate(CourierVm.Name, CourierVm.Suffix, CourierVm.PersonId) == true)
            {
                PrepareViewBag();
                return(View(CourierVm).Danger("Combination of name and sufix is duplicate"));
            }


            if (ModelState.IsValid)
            {
                if (CourierVm.PersonId == 0)
                {
                    Person         person         = Mapper.Map <CourierViewModel, Person>(CourierVm);
                    BusinessEntity businessentity = Mapper.Map <CourierViewModel, BusinessEntity>(CourierVm);
                    Courier        Courier        = Mapper.Map <CourierViewModel, Courier>(CourierVm);
                    PersonAddress  personaddress  = Mapper.Map <CourierViewModel, PersonAddress>(CourierVm);
                    LedgerAccount  account        = Mapper.Map <CourierViewModel, LedgerAccount>(CourierVm);

                    person.CreatedDate  = DateTime.Now;
                    person.ModifiedDate = DateTime.Now;
                    person.CreatedBy    = User.Identity.Name;
                    person.ModifiedBy   = User.Identity.Name;
                    person.ObjectState  = Model.ObjectState.Added;
                    new PersonService(_unitOfWork).Create(person);

                    _BusinessEntityService.Create(businessentity);
                    _CourierService.Create(Courier);


                    personaddress.AddressType  = AddressTypeConstants.Work;
                    personaddress.CreatedDate  = DateTime.Now;
                    personaddress.ModifiedDate = DateTime.Now;
                    personaddress.CreatedBy    = User.Identity.Name;
                    personaddress.ModifiedBy   = User.Identity.Name;
                    personaddress.ObjectState  = Model.ObjectState.Added;
                    _PersonAddressService.Create(personaddress);


                    account.LedgerAccountName   = person.Name;
                    account.LedgerAccountSuffix = person.Suffix;
                    account.CreatedDate         = DateTime.Now;
                    account.ModifiedDate        = DateTime.Now;
                    account.CreatedBy           = User.Identity.Name;
                    account.ModifiedBy          = User.Identity.Name;
                    account.ObjectState         = Model.ObjectState.Added;
                    _AccountService.Create(account);


                    if (CourierVm.PanNo != "" && CourierVm.PanNo != null)
                    {
                        PersonRegistration personregistration = new PersonRegistration();
                        personregistration.RegistrationType = PersonRegistrationType.PANNo;
                        personregistration.RegistrationNo   = CourierVm.PanNo;
                        personregistration.CreatedDate      = DateTime.Now;
                        personregistration.ModifiedDate     = DateTime.Now;
                        personregistration.CreatedBy        = User.Identity.Name;
                        personregistration.ModifiedBy       = User.Identity.Name;
                        personregistration.ObjectState      = Model.ObjectState.Added;
                        _PersonRegistrationService.Create(personregistration);
                    }


                    if (CourierVm.ServiceTaxNo != "" && CourierVm.ServiceTaxNo != null)
                    {
                        PersonRegistration personregistration = new PersonRegistration();
                        personregistration.RegistrationType = PersonRegistrationType.ServiceTaxNo;
                        personregistration.RegistrationNo   = CourierVm.ServiceTaxNo;
                        personregistration.CreatedDate      = DateTime.Now;
                        personregistration.ModifiedDate     = DateTime.Now;
                        personregistration.CreatedBy        = User.Identity.Name;
                        personregistration.ModifiedBy       = User.Identity.Name;
                        personregistration.ObjectState      = Model.ObjectState.Added;
                        _PersonRegistrationService.Create(personregistration);
                    }

                    if (CourierVm.KYCNo != "" && CourierVm.KYCNo != null)
                    {
                        PersonRegistration personregistration = new PersonRegistration();
                        personregistration.RegistrationType = PersonRegistrationType.KYCNo;
                        personregistration.RegistrationNo   = CourierVm.KYCNo;
                        personregistration.CreatedDate      = DateTime.Now;
                        personregistration.ModifiedDate     = DateTime.Now;
                        personregistration.CreatedBy        = User.Identity.Name;
                        personregistration.ModifiedBy       = User.Identity.Name;
                        personregistration.ObjectState      = Model.ObjectState.Added;
                        _PersonRegistrationService.Create(personregistration);
                    }

                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        ModelState.AddModelError("", message);
                        return(View(CourierVm));
                    }


                    #region

                    //Saving Images if any uploaded after UnitOfWorkSave

                    if (Request.Files[0] != null && Request.Files[0].ContentLength > 0)
                    {
                        //For checking the first time if the folder exists or not-----------------------------
                        string uploadfolder;
                        int    MaxLimit;
                        int.TryParse(ConfigurationManager.AppSettings["MaxFileUploadLimit"], out MaxLimit);
                        var x = (from iid in db.Counter
                                 select iid).FirstOrDefault();
                        if (x == null)
                        {
                            uploadfolder = System.Guid.NewGuid().ToString();
                            Counter img = new Counter();
                            img.ImageFolderName = uploadfolder;
                            img.ModifiedBy      = User.Identity.Name;
                            img.CreatedBy       = User.Identity.Name;
                            img.ModifiedDate    = DateTime.Now;
                            img.CreatedDate     = DateTime.Now;
                            new CounterService(_unitOfWork).Create(img);
                            _unitOfWork.Save();
                        }

                        else
                        {
                            uploadfolder = x.ImageFolderName;
                        }


                        //For checking if the image contents length is greater than 100 then create a new folder------------------------------------

                        if (!Directory.Exists(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)))
                        {
                            Directory.CreateDirectory(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder));
                        }

                        int count = Directory.GetFiles(System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder)).Length;

                        if (count >= MaxLimit)
                        {
                            uploadfolder = System.Guid.NewGuid().ToString();
                            var u = new CounterService(_unitOfWork).Find(x.CounterId);
                            u.ImageFolderName = uploadfolder;
                            new CounterService(_unitOfWork).Update(u);
                            _unitOfWork.Save();
                        }


                        //Saving Thumbnails images:
                        Dictionary <string, string> versions = new Dictionary <string, string>();

                        //Define the versions to generate
                        versions.Add("_thumb", "maxwidth=100&maxheight=100");  //Crop to square thumbnail
                        versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg

                        string temp2    = "";
                        string filename = System.Guid.NewGuid().ToString();
                        foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys)
                        {
                            HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey];
                            if (pfile.ContentLength <= 0)
                            {
                                continue;                           //Skip unused file controls.
                            }
                            temp2 = Path.GetExtension(pfile.FileName);

                            string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder);
                            if (!Directory.Exists(uploadFolder))
                            {
                                Directory.CreateDirectory(uploadFolder);
                            }

                            string filecontent = Path.Combine(uploadFolder, CourierVm.Name + "_" + filename);

                            //pfile.SaveAs(filecontent);
                            ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true));


                            //Generate each version
                            foreach (string suffix in versions.Keys)
                            {
                                if (suffix == "_thumb")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, CourierVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                                else if (suffix == "_medium")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, CourierVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                            }

                            //var tempsave = _FinishedProductService.Find(pt.ProductId);

                            person.ImageFileName   = CourierVm.Name + "_" + filename + temp2;
                            person.ImageFolderName = uploadfolder;
                            person.ObjectState     = Model.ObjectState.Modified;
                            _PersonService.Update(person);
                            _unitOfWork.Save();
                        }
                    }

                    #endregion


                    //return RedirectToAction("Create").Success("Data saved successfully");
                    return(RedirectToAction("Edit", new { id = Courier.PersonID }).Success("Data saved Successfully"));
                }
                else
                {
                    //string tempredirect = (Request["Redirect"].ToString());
                    Person             person           = Mapper.Map <CourierViewModel, Person>(CourierVm);
                    BusinessEntity     businessentity   = Mapper.Map <CourierViewModel, BusinessEntity>(CourierVm);
                    Courier            Courier          = Mapper.Map <CourierViewModel, Courier>(CourierVm);
                    PersonAddress      personaddress    = _PersonAddressService.Find(CourierVm.PersonAddressID);
                    LedgerAccount      account          = _AccountService.Find(CourierVm.AccountId);
                    PersonRegistration PersonPan        = _PersonRegistrationService.Find(CourierVm.PersonRegistrationPanNoID);
                    PersonRegistration PersonServiceTax = _PersonRegistrationService.Find(CourierVm.PersonRegistrationServiceTaxNoID);
                    PersonRegistration PersonKYC        = _PersonRegistrationService.Find(CourierVm.PersonRegistrationKYCNoID);

                    StringBuilder logstring = new StringBuilder();

                    person.ModifiedDate = DateTime.Now;
                    person.ModifiedBy   = User.Identity.Name;
                    new PersonService(_unitOfWork).Update(person);


                    _BusinessEntityService.Update(businessentity);
                    _CourierService.Update(Courier);

                    personaddress.Address      = CourierVm.Address;
                    personaddress.CityId       = CourierVm.CityId;
                    personaddress.Zipcode      = CourierVm.Zipcode;
                    personaddress.ModifiedDate = DateTime.Now;
                    personaddress.ModifiedBy   = User.Identity.Name;
                    personaddress.ObjectState  = Model.ObjectState.Modified;
                    _PersonAddressService.Update(personaddress);

                    account.LedgerAccountName   = person.Name;
                    account.LedgerAccountSuffix = person.Suffix;
                    account.ModifiedDate        = DateTime.Now;
                    account.ModifiedBy          = User.Identity.Name;
                    _AccountService.Update(account);



                    if (CourierVm.PanNo != null && CourierVm.PanNo != "")
                    {
                        if (PersonPan != null)
                        {
                            PersonPan.RegistrationNo = CourierVm.PanNo;
                            _PersonRegistrationService.Update(PersonPan);
                        }
                        else
                        {
                            PersonRegistration personregistration = new PersonRegistration();
                            personregistration.PersonId         = CourierVm.PersonId;
                            personregistration.RegistrationType = PersonRegistrationType.PANNo;
                            personregistration.RegistrationNo   = CourierVm.PanNo;
                            personregistration.CreatedDate      = DateTime.Now;
                            personregistration.ModifiedDate     = DateTime.Now;
                            personregistration.CreatedBy        = User.Identity.Name;
                            personregistration.ModifiedBy       = User.Identity.Name;
                            personregistration.ObjectState      = Model.ObjectState.Added;
                            _PersonRegistrationService.Create(personregistration);
                        }
                    }



                    if (CourierVm.ServiceTaxNo != null && CourierVm.ServiceTaxNo != "")
                    {
                        if (PersonServiceTax != null)
                        {
                            PersonServiceTax.RegistrationNo = CourierVm.ServiceTaxNo;
                            _PersonRegistrationService.Update(PersonServiceTax);
                        }
                        else
                        {
                            PersonRegistration personregistration = new PersonRegistration();
                            personregistration.PersonId         = CourierVm.PersonId;
                            personregistration.RegistrationType = PersonRegistrationType.ServiceTaxNo;
                            personregistration.RegistrationNo   = CourierVm.ServiceTaxNo;
                            personregistration.CreatedDate      = DateTime.Now;
                            personregistration.ModifiedDate     = DateTime.Now;
                            personregistration.CreatedBy        = User.Identity.Name;
                            personregistration.ModifiedBy       = User.Identity.Name;
                            personregistration.ObjectState      = Model.ObjectState.Added;
                            _PersonRegistrationService.Create(personregistration);
                        }
                    }



                    if (CourierVm.KYCNo != null && CourierVm.KYCNo != "")
                    {
                        if (PersonKYC != null)
                        {
                            PersonKYC.RegistrationNo = CourierVm.KYCNo;
                            _PersonRegistrationService.Update(PersonKYC);
                        }
                        else
                        {
                            PersonRegistration personregistration = new PersonRegistration();
                            personregistration.PersonId         = CourierVm.PersonId;
                            personregistration.RegistrationType = PersonRegistrationType.KYCNo;
                            personregistration.RegistrationNo   = CourierVm.KYCNo;
                            personregistration.CreatedDate      = DateTime.Now;
                            personregistration.ModifiedDate     = DateTime.Now;
                            personregistration.CreatedBy        = User.Identity.Name;
                            personregistration.ModifiedBy       = User.Identity.Name;
                            personregistration.ObjectState      = Model.ObjectState.Added;
                            _PersonRegistrationService.Create(personregistration);
                        }
                    }



                    ////Saving Activity Log::
                    ActivityLog al = new ActivityLog()
                    {
                        ActivityType = (int)ActivityTypeContants.Modified,
                        DocId        = CourierVm.PersonId,
                        Narration    = logstring.ToString(),
                        CreatedDate  = DateTime.Now,
                        CreatedBy    = User.Identity.Name,
                        //DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(TransactionDocCategoryConstants.ProcessSequence).DocumentTypeId,
                    };
                    new ActivityLogService(_unitOfWork).Create(al);
                    //End of Saving ActivityLog

                    try
                    {
                        _unitOfWork.Save();
                    }

                    catch (Exception ex)
                    {
                        string message = _exception.HandleException(ex);
                        ModelState.AddModelError("", message);
                        return(View("Create", CourierVm));
                    }



                    #region

                    //Saving Image if file is uploaded
                    if (Request.Files[0] != null && Request.Files[0].ContentLength > 0)
                    {
                        string uploadfolder = CourierVm.ImageFolderName;
                        string tempfilename = CourierVm.ImageFileName;
                        if (uploadfolder == null)
                        {
                            var x = (from iid in db.Counter
                                     select iid).FirstOrDefault();
                            if (x == null)
                            {
                                uploadfolder = System.Guid.NewGuid().ToString();
                                Counter img = new Counter();
                                img.ImageFolderName = uploadfolder;
                                img.ModifiedBy      = User.Identity.Name;
                                img.CreatedBy       = User.Identity.Name;
                                img.ModifiedDate    = DateTime.Now;
                                img.CreatedDate     = DateTime.Now;
                                new CounterService(_unitOfWork).Create(img);
                                _unitOfWork.Save();
                            }
                            else
                            {
                                uploadfolder = x.ImageFolderName;
                            }
                        }
                        //Deleting Existing Images

                        var xtemp = System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename);
                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/" + tempfilename));
                        }

                        //Deleting Thumbnail Image:

                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Thumbs/" + tempfilename));
                        }

                        //Deleting Medium Image:
                        if (System.IO.File.Exists(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename)))
                        {
                            System.IO.File.Delete(System.Web.HttpContext.Current.Server.MapPath("~/Uploads/" + uploadfolder + "/Medium/" + tempfilename));
                        }

                        //Saving Thumbnails images:
                        Dictionary <string, string> versions = new Dictionary <string, string>();

                        //Define the versions to generate
                        versions.Add("_thumb", "maxwidth=100&maxheight=100");  //Crop to square thumbnail
                        versions.Add("_medium", "maxwidth=200&maxheight=200"); //Fit inside 400x400 area, jpeg

                        string temp2    = "";
                        string filename = System.Guid.NewGuid().ToString();
                        foreach (string filekey in System.Web.HttpContext.Current.Request.Files.Keys)
                        {
                            HttpPostedFile pfile = System.Web.HttpContext.Current.Request.Files[filekey];
                            if (pfile.ContentLength <= 0)
                            {
                                continue;                           //Skip unused file controls.
                            }
                            temp2 = Path.GetExtension(pfile.FileName);

                            string uploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder);
                            if (!Directory.Exists(uploadFolder))
                            {
                                Directory.CreateDirectory(uploadFolder);
                            }

                            string filecontent = Path.Combine(uploadFolder, CourierVm.Name + "_" + filename);

                            //pfile.SaveAs(filecontent);

                            ImageBuilder.Current.Build(new ImageJob(pfile, filecontent, new Instructions(), false, true));

                            //Generate each version
                            foreach (string suffix in versions.Keys)
                            {
                                if (suffix == "_thumb")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Thumbs");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, CourierVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                                else if (suffix == "_medium")
                                {
                                    string tuploadFolder = System.Web.HttpContext.Current.Request.MapPath("~/Uploads/" + uploadfolder + "/Medium");
                                    if (!Directory.Exists(tuploadFolder))
                                    {
                                        Directory.CreateDirectory(tuploadFolder);
                                    }

                                    //Generate a filename (GUIDs are best).
                                    string tfileName = Path.Combine(tuploadFolder, CourierVm.Name + "_" + filename);

                                    //Let the image builder add the correct extension based on the output file type
                                    //fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
                                    ImageBuilder.Current.Build(new ImageJob(pfile, tfileName, new Instructions(versions[suffix]), false, true));
                                }
                            }
                        }
                        var temsave = _PersonService.Find(person.PersonID);
                        temsave.ImageFileName   = temsave.Name + "_" + filename + temp2;
                        temsave.ImageFolderName = uploadfolder;
                        _PersonService.Update(temsave);
                        _unitOfWork.Save();
                    }

                    #endregion



                    return(RedirectToAction("Index").Success("Data saved successfully"));
                }
            }
            PrepareViewBag();
            return(View(CourierVm));
        }