Exemplo n.º 1
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(HttpNotFound());
            }

            var response = await WepApiMethod.SendApiAsync <DetailsIndividualModel>(HttpVerbs.Get, $"Administration/Individual?id={id}");

            if (!response.isSuccess)
            {
                return(HttpNotFound());
            }

            var model = new EditIndividualModel
            {
                Id                   = response.Data.Id,
                IsMalaysian          = response.Data.IsMalaysian,
                CitizenshipId        = response.Data.Citizenship != null ? response.Data.Citizenship.Id : (int?)null,
                Name                 = response.Data.Name,
                ICNo                 = response.Data.ICNo,
                PassportNo           = response.Data.PassportNo,
                Email                = response.Data.Email,
                MobileNo             = response.Data.MobileNo,
                CountryCode          = response.Data.CountryCode,
                Address1             = response.Data.Address1,
                Address2             = response.Data.Address2,
                PostCodeMalaysian    = response.Data.PostCodeMalaysian,
                PostCodeNonMalaysian = response.Data.PostCodeNonMalaysian,
                City                 = response.Data.City,
                StateId              = response.Data.State.Id,
                State                = response.Data.State.Name,
                CountryId            = response.Data.Country.Id,
                RoleIds              = response.Data.Roles.Select(s => s.Id).ToArray(),
                Status               = response.Data.Status
            };

            var countries = await GetCountries();

            model.MalaysiaCountryId = countries.Where(c => c.Name == "Malaysia").Select(s => s.Id).FirstOrDefault();

            model.States       = new SelectList(await GetStates(), "Id", "Name", 0);
            model.Countries    = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0);
            model.Citizenships = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0);
            model.Roles        = new SelectList(await GetRoles(), "Id", "Name", 0);

            return(View(model));
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Edit(EditIndividualModel model)
        {
            if (model.IsMalaysian)
            {
                ModelState.Remove("PassportNo");
                ModelState.Remove("CitizenshipId");
                ModelState.Remove("PostCodeNonMalaysian");
                ModelState.Remove("State");
                ModelState.Remove("CountryId");

                model.CountryId = model.MalaysiaCountryId;
            }
            else
            {
                ModelState.Remove("ICNo");
                ModelState.Remove("PostCodeMalaysian");
                ModelState.Remove("StateId");
                model.StateId = null;
            }

            var emailResponse = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Get, $"Administration/User/IsEmailExist?id={model.Id}&email={model.Email}");

            if (emailResponse.isSuccess)
            {
                ModelState.AddModelError("Email", Language.Administrator.Individual.ValidIsExistEmail);
            }

            var icno = model.ICNo;

            if (!model.IsMalaysian)
            {
                icno = model.PassportNo;
            }

            var icnoResponse = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Get, $"Administration/User/IsICNoExist?id={model.Id}&icno={icno}");

            if (icnoResponse.isSuccess)
            {
                if (model.IsMalaysian)
                {
                    ModelState.AddModelError("ICNo", Language.Administrator.Individual.ValidIsExistICNo);
                }
                else
                {
                    ModelState.AddModelError("PassportNo", Language.Administrator.Individual.ValidIsExistPassportNo);
                }
            }

            if (ModelState.IsValid)
            {
                var response = await WepApiMethod.SendApiAsync <bool>(HttpVerbs.Put, $"Administration/Individual?id={model.Id}", model);

                if (response.isSuccess)
                {
                    await LogActivity(Modules.Setting, "Update Individual User", model);

                    TempData["SuccessMessage"] = Language.Administrator.Individual.AlertEditSuccess;

                    return(RedirectToAction("Details", "Individual", new { area = "Administrator", @id = model.Id }));
                }
                else
                {
                    TempData["ErrorMessage"] = Language.Administrator.Individual.AlertEditFail;

                    return(RedirectToAction("Details", "Individual", new { area = "Administrator", @id = model.Id }));
                }
            }

            var countries = await GetCountries();

            model.MalaysiaCountryId = countries.Where(c => c.Name == "Malaysia").Select(s => s.Id).FirstOrDefault();

            model.States       = new SelectList(await GetStates(), "Id", "Name", 0);
            model.Countries    = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0);
            model.Citizenships = new SelectList(countries.Where(c => c.Name != "Malaysia"), "Id", "Name", 0);
            model.Roles        = new SelectList(await GetRoles(), "Id", "Name", 0);

            return(View(model));
        }
Exemplo n.º 3
0
        public IHttpActionResult Put(int id, [FromBody] EditIndividualModel model)
        {
            var user        = db.User.Where(u => u.Id == id && u.Display && u.UserType == UserType.Individual).FirstOrDefault();
            var individual  = db.IndividualProfile.Where(i => i.UserId == id).FirstOrDefault();
            var useraccount = db.UserAccount.Where(u => u.UserId == id).FirstOrDefault();

            if (user == null || individual == null || useraccount == null)
            {
                return(NotFound());
            }

            if (model.IsMalaysian)
            {
                ModelState.Remove("model.PassportNo");
                ModelState.Remove("model.CitizenshipId");
                ModelState.Remove("model.PostCodeNonMalaysian");
                ModelState.Remove("model.State");
            }
            else
            {
                ModelState.Remove("model.ICNo");
                ModelState.Remove("model.PostCodeMalaysian");
                ModelState.Remove("model.StateId");
            }

            if (ModelState.IsValid)
            {
                var countryCode = db.Country.Where(c => c.Id == model.CountryId && c.Display).FirstOrDefault();

                if (countryCode == null)
                {
                    return(InternalServerError());
                }

                user.Name        = model.Name;
                user.ICNo        = model.IsMalaysian ? model.ICNo : model.PassportNo;
                user.Email       = model.Email;
                user.MobileNo    = model.MobileNo;
                user.CountryCode = countryCode.CountryCode1;

                useraccount.LoginId = model.Email;

                individual.IsMalaysian   = model.IsMalaysian;
                individual.CitizenshipId = model.CitizenshipId;
                individual.Address1      = model.Address1;
                individual.Address2      = model.Address2;
                individual.PostCode      = model.IsMalaysian ? model.PostCodeMalaysian : model.PostCodeNonMalaysian;
                individual.City          = model.City;
                individual.StateId       = model.IsMalaysian ? model.StateId : null;
                individual.StateName     = model.IsMalaysian ? "" : model.State;
                individual.CountryId     = model.CountryId;

                db.User.Attach(user);
                db.Entry(user).Property(x => x.Name).IsModified        = true;
                db.Entry(user).Property(x => x.ICNo).IsModified        = true;
                db.Entry(user).Property(x => x.Email).IsModified       = true;
                db.Entry(user).Property(x => x.MobileNo).IsModified    = true;
                db.Entry(user).Property(x => x.CountryCode).IsModified = true;

                db.UserAccount.Attach(useraccount);
                db.Entry(useraccount).Property(x => x.LoginId).IsModified = true;

                db.Entry(individual).State = EntityState.Modified;

                db.UserRole.RemoveRange(db.UserRole.Where(u => u.UserId == id));//remove all
                foreach (var roleid in model.RoleIds)
                {
                    var userrole = new UserRole
                    {
                        RoleId = roleid,
                        UserId = id,
                    };

                    db.UserRole.Add(userrole);
                }

                db.Configuration.ValidateOnSaveEnabled = true;
                db.SaveChanges();

                return(Ok(true));
            }

            return(BadRequest(ModelState));
        }