コード例 #1
0
        public override async Task <CongViecDto> Create(CreateCongViecDto input)
        {
            input.TrangThaiId = 0;

            // Ghép chuỗi để có địa chỉ đầy đủ
            string Address       = input.DiaChi;
            string QuanHuyenName = await _globalCache.GetQuanHuyenName(input.DiaChiTinhThanhId, input.DiaChiQuanHuyenId);

            Address += string.IsNullOrWhiteSpace(QuanHuyenName) ? "" : ", " + QuanHuyenName;
            string TinhThanhName = await _globalCache.GetTinhThanhName(input.DiaChiTinhThanhId);

            Address       += string.IsNullOrWhiteSpace(TinhThanhName) ? "" : ", " + TinhThanhName;
            Address       += ", Việt Nam";
            input.Location = await GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), Address);

            // Nghiên cứu viết lại
            var CongViec = ObjectMapper.Map <CongViec>(input);

            CongViec.TrangThaiId = 0;
            CongViec.TimeId      = string.Format("{0:yyyyMM}", CongViec.CreationTime);
            await _congViecRepository.InsertAsync(CongViec);

            return(ObjectMapper.Map <CongViecDto>(CongViec));
            //return await base.Create(input);
        }
コード例 #2
0
        public async Task Create(CreateKhachHangDto input)
        {
            var user = await _userRegistrationManager.RegisterAsync(
                input.PhoneNumber,
                input.EmailAddress,
                "",
                input.Password,
                true,          // Not active by default
                true
                );

            // Ghép chuỗi để có địa chỉ đầy đủ
            string Address       = input.Address;
            string QuanHuyenName = await _globalCache.GetQuanHuyenName(input.ProvinceId, input.DistrictId);

            Address += string.IsNullOrWhiteSpace(QuanHuyenName) ? "" : ", " + QuanHuyenName;
            string TinhThanhName = await _globalCache.GetTinhThanhName(input.ProvinceId);

            Address += string.IsNullOrWhiteSpace(TinhThanhName) ? "" : ", " + TinhThanhName;
            Address += ", Việt Nam";

            // Kiểm tra bên bảng KhachHang, nếu có bản ghi trùng SĐT mà chưa kết nối vào tài khoản nào thì tiến hành kết nối
            KhachHang newKhachHang = await _khachHangRepository.FirstOrDefaultAsync(w => w.PhoneNumber == input.PhoneNumber && w.UserId == null);

            if (newKhachHang == null)
            {
                newKhachHang = new KhachHang
                {
                    Name         = input.Name,
                    Address      = input.Address,
                    ProvinceId   = input.ProvinceId,
                    DistrictId   = input.DistrictId,
                    Location     = await GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), Address),
                    PhoneNumber  = input.PhoneNumber,
                    EmailAddress = input.EmailAddress,
                    UserId       = user.Id
                };
                await _khachHangRepository.InsertAsync(newKhachHang);
            }
            else
            {
                newKhachHang.Name       = input.Name;
                newKhachHang.Address    = input.Address;
                newKhachHang.ProvinceId = input.ProvinceId;
                newKhachHang.DistrictId = input.DistrictId;
                newKhachHang.Location   = await GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), Address);

                newKhachHang.PhoneNumber  = input.PhoneNumber;
                newKhachHang.EmailAddress = input.EmailAddress;
                newKhachHang.UserId       = user.Id;
            }

            //return ObjectMapper.Map<KhachHangDto>(newKhachHang);
        }
コード例 #3
0
        public async Task <string> Create(CreateYeuCauDto input)
        {
            var UserCache = await _globalCache.GetUserCache((long)AbpSession.UserId);

            if (UserCache.Id == 0 || !UserCache.IsCustomer)
            {
                throw new UserFriendlyException(L("UserIsNotCustomer"));
            }

            // Ghép chuỗi để có địa chỉ đầy đủ
            string Address       = input.DiaChi;
            string QuanHuyenName = await _globalCache.GetQuanHuyenName(input.DiaChiTinhThanhId, input.DiaChiQuanHuyenId);

            Address += string.IsNullOrWhiteSpace(QuanHuyenName) ? "" : ", " + QuanHuyenName;
            string TinhThanhName = await _globalCache.GetTinhThanhName(input.DiaChiTinhThanhId);

            Address += string.IsNullOrWhiteSpace(TinhThanhName) ? "" : ", " + TinhThanhName;
            Address += ", Việt Nam";

            var CongViec = ObjectMapper.Map <CongViec>(input);

            CongViec.KhachHangId   = UserCache.CustomerId;
            CongViec.KhachHangName = UserCache.Name;
            CongViec.Location      = await GlobalFunction.GetLongLatFromAddress(_globalCache.GetGoogleApiKey(), Address);

            CongViec.TrangThaiId = 0;
            CongViec.NgayYeuCau  = DateTime.Now;
            CongViec.TimeId      = string.Format("{0:yyyyMM}", CongViec.NgayYeuCau);

            // Tự động phân bổ công việc về Trạm
            var CongViecTheoTram = _congViecRepository.GetAll().Where(w => w.TramDichVuId > 0 &&
                                                                      (w.TrangThaiId == (int)GlobalConst.TrangThaiCongViec.ChoPhanBo ||
                                                                       w.TrangThaiId == (int)GlobalConst.TrangThaiCongViec.DaPhanBo ||
                                                                       w.TrangThaiId == (int)GlobalConst.TrangThaiCongViec.DaNhan ||
                                                                       w.TrangThaiId == (int)GlobalConst.TrangThaiCongViec.DangXuLy ||
                                                                       w.TrangThaiId == (int)GlobalConst.TrangThaiCongViec.ChoLinhKien)
                                                                      ).GroupBy(g => g.TramDichVuId)
                                   .Select(s => new { TramDichVuId = s.Key, SoCongViec = s.Count() });

            var query = from TramDichVu in _tramDichVuRepository.GetAll().Where(w => w.DiaChiTinhThanhId == input.DiaChiTinhThanhId || w.DiaChiQuanHuyenId == input.DiaChiQuanHuyenId)

                        join CongViecTungTram in CongViecTheoTram on TramDichVu.Id equals CongViecTungTram.TramDichVuId into J1
                        from CongViecTungTram in J1.DefaultIfEmpty()

                        select new
            {
                TramDichVu.Id,
                TramDichVu.DiaChiTinhThanhId,
                TramDichVu.DiaChiQuanHuyenId,
                SoCongViec = CongViecTungTram != null ? CongViecTungTram.SoCongViec : 0
            };

            var Trams = await query.ToListAsync();

            if (Trams.Count > 0)
            {
                var TramPhanBo = Trams.Where(w => w.DiaChiQuanHuyenId == input.DiaChiQuanHuyenId).OrderBy(o => o.SoCongViec).FirstOrDefault();

                if (TramPhanBo == null)
                {
                    TramPhanBo = Trams.Where(w => w.DiaChiTinhThanhId == input.DiaChiTinhThanhId).OrderBy(o => o.SoCongViec).FirstOrDefault();
                }

                if (TramPhanBo != null)
                {
                    CongViec.TramDichVuId = TramPhanBo.Id;
                }
            }

            await _congViecRepository.InsertAsync(CongViec);

            return("OK");
        }