Ejemplo n.º 1
0
        public async Task <IHttpActionResult> Post(NguoiDungViewModel.Dto instance)
        {
            var result         = new TransferObj <NGUOIDUNG>();
            var curentUnitCode = _service.GetCurrentUnitCode();

            if (instance.MANHANVIEN == "")
            {
                result.Status  = false;
                result.Message = "Mã không hợp lệ";
                return(Ok(result));
            }
            else
            {
                var exist = _service.Repository.DbSet.FirstOrDefault(x => x.MANHANVIEN == instance.MANHANVIEN && x.UNITCODE.StartsWith(curentUnitCode));
                if (exist != null)
                {
                    result.Status  = false;
                    result.Message = "Đã tồn tại mã người dùng này";
                    return(Ok(result));
                }
            }
            try
            {
                instance.MANHANVIEN = _service.SaveCode();
                instance.I_STATE    = "C";
                instance.PASSWORD   = MD5Encrypt.MD5Hash(instance.PASSWORD);
                var data = Mapper.Map <NguoiDungViewModel.Dto, NGUOIDUNG>(instance);
                if (!string.IsNullOrEmpty(instance.UNITCODE) && instance.UNITCODE.Equals(curentUnitCode))
                {
                    data.PARENT_UNITCODE = curentUnitCode;
                    var item = _service.Insert(data);
                    int inst = await _service.UnitOfWork.SaveAsync();

                    if (inst > 0)
                    {
                        result.Status  = true;
                        result.Data    = item;
                        result.Message = "Thêm mới thành công";
                    }
                    else
                    {
                        result.Status  = false;
                        result.Data    = null;
                        result.Message = "Thao tác không thành công";
                    }
                }
                else
                {
                    data.PARENT_UNITCODE = _service.GetParentUnitCode(data.UNITCODE);
                    var item = _service.Insert(data, false);
                    int inst = await _service.UnitOfWork.SaveAsync();

                    if (inst > 0)
                    {
                        result.Status  = true;
                        result.Data    = item;
                        result.Message = "Thêm mới thành công";
                    }
                    else
                    {
                        result.Status  = false;
                        result.Data    = null;
                        result.Message = "Thao tác không thành công";
                    }
                }
            }
            catch (Exception e)
            {
                result.Status  = false;
                result.Message = e.Message;
            }
            return(Ok(result));
        }