예제 #1
0
        public async Task <string> Create(AccountantDto model)
        {
            //var officer = _httpContextAccessor.HttpContext.User.Identity.Name;

            //if (officer == "SuperAdmin")
            //{
            //    officer = "Admin";
            //}

            var user = new ApplicationUser
            {
                UserName     = model.Email,
                SurName      = model.SurName,
                Email        = model.Email,
                FirstName    = model.FirstName,
                OtherName    = model.OtherName,
                MobileNo     = model.MobileNo,
                Sex          = model.Sex,
                Address      = model.Address,
                EntityStatus = model.Status
            };

            var result = await userManager.CreateAsync(user, model.Password);

            if (result.Succeeded)
            {
                await userManager.AddToRoleAsync(user, "Accountant");

                Accountants accountant = new Accountants();
                accountant.UserId         = user.Id;
                accountant.SurName        = model.SurName;
                accountant.FirstName      = model.SurName;
                accountant.OtherName      = model.OtherName;
                accountant.EmailAddress   = model.Email;
                accountant.PhoneNo        = model.PhoneNo;
                accountant.MobileNo       = model.MobileNo;
                accountant.Sex            = model.Sex;
                accountant.Address        = model.Address;
                accountant.Status         = model.Status;
                accountant.ProfilePicture = model.ProfilePicture;

                _context.Accountants.Add(accountant);
                await _context.SaveChangesAsync();


                //var acctReg = await _context.Accountants.FirstOrDefaultAsync(x => x.UserId == user.Id);
                //string numberid = acctReg.Id.ToString("D3");
                //acctReg.AccountantReg = "ACCT/" + numberid;
                //_context.Entry(acctReg).State = EntityState.Modified;
                //await _context.SaveChangesAsync();

                return("true");
            }
            var errors  = result.Errors;
            var message = string.Join(",", errors);

            return(message);
        }
예제 #2
0
        public async Task <IActionResult> Get(Guid id)
        {
            IGetAccountantDetailsQuery query = this.queryFactory.Create <IGetAccountantDetailsQuery>();

            // Configured to contain all details including documents list
            AccountantDto result = await query.GetResultsAsync(new IdQueryParam(id));

            return(Ok(result));
        }
        public async Task <IActionResult> NewAccountant(AccountantDto model, List <IFormFile> files)
        {
            var ee = "";

            if (ModelState.IsValid)
            {
                try
                {
                    string succed;

                    succed = await _accountant.Create(model);

                    if (succed == "true")
                    {
                        var user = await userManager.FindByNameAsync(model.Email);

                        var user1 = await _context.Accountants.FirstOrDefaultAsync(x => x.UserId == user.Id);

                        //try to update the Accountant Reg
                        //Accountant Reg
                        string numberid = user1.Id.ToString("D3");
                        user1.AccountantReg = "ACCT/" + numberid;

                        //try to update the user profile pict
                        //profile pic upload
                        var fileName = await _upload.UploadFile(files, _env);

                        user1.ProfilePicture        = "/Uploads/" + fileName;
                        _context.Entry(user1).State = EntityState.Modified;
                        await _context.SaveChangesAsync();



                        TempData["success"] = "Accountant with Username " + model.Fullname + "Added Successfully";
                        return(RedirectToAction("NewAccountant"));
                    }
                    else
                    {
                        TempData["error1"] = succed;
                    }
                }
                catch (Exception e)
                {
                    ee = e.ToString();
                }
            }
            var allErrors = ModelState.Values.SelectMany(v => v.Errors);

            TempData["error"] = "Creation of new Accountant not successful" + ee;
            return(View(model));
        }
        /// <summary>
        /// Gets accountant details
        /// </summary>
        /// <param name="parameter">Query parameter</param>
        /// <returns></returns>
        public async Task <AccountantDto> GetResultsAsync(IdQueryParam parameter)
        {
            Data.Models.Accountant accountant = await this
                                                .DataContext
                                                .Accountants
                                                .Include(mdl => mdl.DocumentsList)
                                                .AsNoTracking()
                                                .Where(mdl => !mdl.IsRemoved)
                                                .FirstAsync(mdl => mdl.Id == parameter.Id);

            AccountantDto result = Mapper.Map <AccountantDto>(accountant);

            return(result);
        }
예제 #5
0
        public ActionResult Save(AccountantDto AccountantDto)
        {
            if (AccountantDto.Id == 0)
            {
                var accountant = Mapper.Map <Accountant>(AccountantDto);
                _context.Accountants.Add(accountant);
            }
            else
            {
                var _accountant = _context.Accountants.Single(c => c.Id == AccountantDto.Id);
                Mapper.Map(AccountantDto, _accountant);
            }
            _context.SaveChanges();

            return(Redirect("Index"));
        }