public ActionResult AddPersonLicenseDetail(PersonLicenseModel model, FormCollection form)
        {
            int id = 0;

            if (ModelState.IsValid)
            {
                dbDriversLicenseEntities entities        = new dbDriversLicenseEntities();
                tblPersonDetail          tblPersonDetail = new tblPersonDetail();
                if (model != null)
                {
                    int count = entities.tblPersonDetails.Where(a => a.PhoneNumber == model.PhoneNumber).Count();
                    if (count > 0)
                    {
                        TempData["Error"] = "Phone Number Already Exist, Try Another!";
                        return(RedirectToAction("Index", "Home"));
                    }
                    int countLic = entities.tblDriversLicenseDetails.Where(a => a.License_number == model.LicenseNumber).Count();
                    if (countLic > 0)
                    {
                        TempData["Error"] = "License Number Already Exist, Try Another!";
                        return(RedirectToAction("Index", "Home"));
                    }

                    tblPersonDetail.Address         = model.Address.Trim();
                    tblPersonDetail.CreatedDate     = DateTime.UtcNow;
                    tblPersonDetail.FirstName       = model.FirstName.Trim();
                    tblPersonDetail.LastName        = model.LastName.Trim();
                    tblPersonDetail.LastUpdatedDate = DateTime.UtcNow;
                    tblPersonDetail.PhoneNumber     = model.PhoneNumber.Trim();
                    entities.tblPersonDetails.Add(tblPersonDetail);
                    entities.SaveChanges();
                    id = tblPersonDetail.Id;
                    if (id > 0)
                    {
                        int Lid = 0;
                        tblDriversLicenseDetail tblDriversLicenseDetail = new tblDriversLicenseDetail();
                        tblDriversLicenseDetail.Issue_date     = Convert.ToDateTime(model.IssueDate);
                        tblDriversLicenseDetail.Expiry_date    = Convert.ToDateTime(model.ExpiryDate);
                        tblDriversLicenseDetail.License_number = model.LicenseNumber.Trim();
                        tblDriversLicenseDetail.PersonId       = id;
                        tblDriversLicenseDetail.LicenseTypeId  = Convert.ToInt32(form["LicenseTypeName"]);
                        entities.tblDriversLicenseDetails.Add(tblDriversLicenseDetail);
                        entities.SaveChanges();
                        Lid = tblDriversLicenseDetail.Id;
                        if (Lid > 0)
                        {
                            return(RedirectToAction("ViewLicenseDetails", "Home"));
                        }
                    }
                }
            }
            else
            {
                GetlicenseTypes();
            }
            return(View("Index", personLicenseModel));
        }
        public ActionResult Edit(int ID, PersonLicenseModel model, FormCollection form)
        {
            using (dbDriversLicenseEntities entities = new dbDriversLicenseEntities())
            {
                int count = entities.tblPersonDetails.Where(a => a.PhoneNumber == model.PhoneNumber && a.Id != model.PersonId).Count();
                if (count > 0)
                {
                    TempData["Error"] = "Phone Number Already Exist, Try Another!";
                    return(RedirectToAction("Index", "Home"));
                }
                int countLic = entities.tblDriversLicenseDetails.Where(a => a.License_number == model.LicenseNumber && a.PersonId != model.PersonId).Count();
                if (countLic > 0)
                {
                    TempData["Error"] = "License Number Already Exist, Try Another!";
                    return(RedirectToAction("Index", "Home"));
                }


                tblPersonDetail updatedPerson = (from c in entities.tblPersonDetails
                                                 where c.Id == ID
                                                 select c).FirstOrDefault();
                if (updatedPerson != null)
                {
                    updatedPerson.FirstName       = model.FirstName;
                    updatedPerson.LastName        = model.LastName;
                    updatedPerson.Address         = model.Address;
                    updatedPerson.PhoneNumber     = model.PhoneNumber;
                    updatedPerson.LastUpdatedDate = DateTime.UtcNow;
                    entities.SaveChanges();
                    tblDriversLicenseDetail data = (from c in entities.tblDriversLicenseDetails
                                                    where c.PersonId == ID
                                                    select c).FirstOrDefault();

                    if (data != null)
                    {
                        data.License_number = model.LicenseNumber;
                        data.Issue_date     = Convert.ToDateTime(model.IssueDate);
                        data.Expiry_date    = Convert.ToDateTime(model.ExpiryDate);
                        data.LicenseTypeId  = Convert.ToInt32(form["LicenseTypeName"]);
                    }
                    entities.SaveChanges();
                }
            }

            return(RedirectToAction("ViewLicenseDetails"));
        }
        public ActionResult Edit(int ID)
        {
            PersonLicenseModel pModel = new PersonLicenseModel();

            using (dbDriversLicenseEntities entities = new dbDriversLicenseEntities())
            {
                var query = (from p in entities.tblPersonDetails
                             join d in entities.tblDriversLicenseDetails
                             on p.Id equals d.PersonId
                             join l in entities.tblLicenseTypes
                             on d.LicenseTypeId equals l.Id
                             where p.Id == ID
                             select new PersonLicenseModel
                {
                    FirstName = p.FirstName,
                    LastName = p.LastName,
                    Address = p.Address,
                    PhoneNumber = p.PhoneNumber,
                    LicenseNumber = d.License_number,
                    LicenseTypeId = d.LicenseTypeId,
                    IssueDate = d.Issue_date.ToString(),
                    ExpiryDate = d.Expiry_date.ToString()
                }).FirstOrDefault();

                if (query != null)
                {
                    var licenseTypes = (from p in entities.tblLicenseTypes.AsEnumerable()
                                        select new SelectListItem
                    {
                        Text = p.LicenseTypeName,
                        Value = p.Id.ToString()
                    }).ToList <SelectListItem>();
                    string licenseTypeId = Convert.ToString(query.LicenseTypeId);



                    var selectedlicenseType = licenseTypes.FirstOrDefault(p => p.Value == licenseTypeId);
                    selectedlicenseType.Selected = true;

                    pModel.FirstName = query.FirstName;
                    pModel.LastName  = query.LastName;
                    pModel.Address   = query.Address;
                    if (!string.IsNullOrEmpty(query.IssueDate))
                    {
                        DateTime issuedate = Convert.ToDateTime(query.IssueDate);
                        pModel.IssueDate = issuedate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture);
                    }
                    if (!string.IsNullOrEmpty(query.ExpiryDate))
                    {
                        DateTime expirydate = Convert.ToDateTime(query.ExpiryDate);
                        pModel.ExpiryDate = expirydate.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture);
                    }
                    pModel.PhoneNumber      = query.PhoneNumber;
                    pModel.LicenseTypeId    = query.LicenseTypeId;
                    pModel.Drp_LicenceTypes = licenseTypes;
                    pModel.LicenseNumber    = query.LicenseNumber;
                    pModel.PersonId         = ID;
                }
                else
                {
                    return(HttpNotFound());
                }
            }
            return(View(pModel));
        }