예제 #1
0
        public static ServiceResponseResult AddTenantJobRequest(MarketJobModel model, Login login, HttpFileCollectionBase files = null)
        {
            using (var db = new KeysEntities())
            {
                try
                {
                    var request = db.PropertyRequest.Where(x => x.Id == model.RequestId).FirstOrDefault();
                    if (request == null)
                    {
                        return new ServiceResponseResult {
                                   IsSuccess = false, ErrorMessage = "No record found!"
                        }
                    }
                    ;
                    request.RequestStatusId = (int)JobRequestStatus.Accepted;
                    request.IsUpdated       = true;
                    var jobRequest = new TenantJobRequest
                    {
                        PropertyId     = model.PropertyId,
                        OwnerId        = login.Id,
                        JobDescription = model.JobDescription,
                        JobStatusId    = 1, //Bug #2031 (Part 3)
                        MaxBudget      = model.MaxBudget,
                        CreatedOn      = DateTime.UtcNow,
                        CreatedBy      = login.Email,
                        UpdatedOn      = DateTime.UtcNow,
                        UpdatedBy      = login.Email,
                        Title          = model.Title
                    };
                    db.TenantJobRequest.Add(jobRequest);
                    var mediaFiles = MediaService.SaveFiles(files, 5, AllowedFileType.Images).NewObject as List <MediaModel>;
                    mediaFiles.ForEach(x => jobRequest.TenantJobRequestMedia.Add(new TenantJobRequestMedia
                    {
                        NewFileName = x.NewFileName,
                        OldFileName = x.OldFileName,
                    }));
                    db.SaveChanges();
                    var perId = request.RecipientId;
                    if (perId.HasValue)
                    {
                        var addr = request.Property.Address;

                        var ten    = db.Person.FirstOrDefault(x => x.Id == perId);
                        var tenLog = ten.Login;
                        PropertyOwnerService.SendAcceptRequestEmail(ten.FirstName, tenLog.UserName, addr.ToAddressString());
                    }

                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception ex)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #2
0
        public static ServiceResponseResult AddDIYJob(JobModel model, Login login, HttpFileCollectionBase files, string serverPath = null)
        {
            using (var db = new KeysEntities())
            {
                try
                {
                    var newDIYJob = new Job
                    {
                        PropertyId     = model.PropertyId,
                        JobDescription = model.JobDescription,
                        JobStatusId    = 2, // Should be in pending state as the job hasnt started yet
                        CreatedOn      = DateTime.UtcNow,
                        CreatedBy      = login.Email,
                        UpdatedOn      = DateTime.UtcNow,
                        UpdatedBy      = login.Email,
                        PercentDone    = 0,
                        OwnerId        = login.Id,
                        JobRequestId   = model.JobRequestId,
                        PaymentAmount  = 0,
                    };
                    db.Job.Add(newDIYJob);
                    var request = db.PropertyRequest.Where(x => x.Id == model.JobRequestId).FirstOrDefault();
                    request.RequestStatusId = (int)JobRequestStatus.Accepted;
                    request.IsUpdated       = true;
                    //foreach (int fileId in model.FilesCopy)
                    //{
                    //    var propertyRequestMedia1 = db.PropertyRequestMedia.Where(x => x.Id == fileId).FirstOrDefault();
                    //    var newDIYJobMedia = new JobMedia();

                    //    newDIYJobMedia.JobId = newDIYJob.Id;
                    //    newDIYJobMedia.NewFileName = propertyRequestMedia1.NewFileName;
                    //    newDIYJobMedia.OldFileName = propertyRequestMedia1.OldFileName;
                    //    newDIYJobMedia.PropertyId = newDIYJob.PropertyId;
                    //    db.JobMedia.Add(newDIYJobMedia);

                    //}

                    var mediaFiles = MediaService.SaveFiles(files, 5, AllowedFileType.Images).NewObject as List <MediaModel>;
                    mediaFiles.ForEach(x => newDIYJob.JobMedia.Add(new JobMedia
                    {
                        NewFileName = x.NewFileName,
                        OldFileName = x.OldFileName,
                    }));
                    db.SaveChanges();
                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception ex)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #3
0
        public static ServiceResponseResult EditMarketJob(MarketJobModel model, Login login, HttpFileCollectionBase files = null)
        {
            var result = new ServiceResponseResult {
                IsSuccess = false
            };

            using (var db = new KeysEntities())
            {
                var files1        = model.MediaFiles;
                var editMarketJob = db.TenantJobRequest.Where(x => x.Id == model.Id).FirstOrDefault();
                if (editMarketJob == null)
                {
                    var errorMsg = "Cannot locate the Job in the Market Place";
                    result.ErrorMessage = errorMsg;
                    return(result);
                }
                else
                {
                    editMarketJob.JobDescription = model.JobDescription;
                    editMarketJob.MaxBudget      = model.MaxBudget;
                    if (model.FilesRemoved != null)
                    {
                        model.FilesRemoved.ToList().ForEach(x =>
                        {
                            var media = db.TenantJobRequestMedia.FirstOrDefault(y => y.Id == x);
                            if (media != null)
                            {
                                db.TenantJobRequestMedia.Remove(media);
                                MediaService.RemoveMediaFile(media.NewFileName);
                            }
                        });
                    }
                    var fileList = MediaService.SaveFiles(files, 5 - editMarketJob.TenantJobRequestMedia.Count(), AllowedFileType.Images).NewObject as List <MediaModel>;
                    if (fileList != null)
                    {
                        fileList.ForEach(x => editMarketJob.TenantJobRequestMedia.Add(new TenantJobRequestMedia {
                            NewFileName = x.NewFileName, OldFileName = x.OldFileName
                        }));
                    }
                }
                try
                {
                    db.SaveChanges();
                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #4
0
 public static ServiceResponseResult EditInspection(InspectionModel model, Login login, HttpFileCollectionBase files)
 {
     using (var db = new KeysEntities())
     {
         var editInspection = db.Inspection.Where(x => x.Id == model.Id).First();
         if (editInspection != null)
         {
             editInspection.IsUpdated   = true;
             editInspection.PercentDone = model.PercentDone;
             editInspection.Message     = model.Message;
             editInspection.UpdatedBy   = login.Id;
             editInspection.UpdatedOn   = DateTime.UtcNow;
             if (model.FilesRemoved.Count > 0)
             {
                 foreach (var file in model.FilesRemoved)
                 {
                     var removeFile = db.InspectionMedia.Find(file);
                     db.InspectionMedia.Remove(removeFile);
                     MediaService.RemoveMediaFile(removeFile.NewFileName);
                 }
             }
             var fileList = MediaService.SaveFiles(files, 5 - editInspection.InspectionMedia.Count, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
             if (fileList != null)
             {
                 fileList.ForEach(x => editInspection.InspectionMedia.Add(new InspectionMedia {
                     NewFileName = x.NewFileName, InspectionId = editInspection.Id, OldFileName = x.OldFileName, IsActive = true
                 }));
             }
         }
         ;
         try
         {
             db.SaveChanges();
             var mediaFiles = editInspection.InspectionMedia.Select(x => MediaService.GenerateViewProperties(new MediaModel {
                 NewFileName = x.NewFileName, OldFileName = x.OldFileName
             })).ToList();
             mediaFiles = mediaFiles ?? new List <MediaModel>();
             return(new ServiceResponseResult {
                 IsSuccess = true, NewObject = mediaFiles
             });
         }
         catch (Exception ex)
         {
             return(new ServiceResponseResult {
                 IsSuccess = true, ErrorMessage = _error
             });
         }
     }
 }
예제 #5
0
        public static ServiceResponseResult EditMarketJobQuote(JobQuoteModel quoteModel, Login login, HttpFileCollectionBase files)
        {
            var result = new ServiceResponseResult {
                IsSuccess = false
            };

            using (var db = new KeysEntities())
            {
                var editJobQuote = db.JobQuote.Where(x => x.Id == quoteModel.Id).FirstOrDefault();
                editJobQuote.Id        = quoteModel.Id;
                editJobQuote.Note      = quoteModel.Note;
                editJobQuote.UpdatedOn = DateTime.Now;

                if (quoteModel.FilesRemoved != null)
                {
                    quoteModel.FilesRemoved.ToList().ForEach(x =>
                    {
                        var media = db.JobQuoteMedia.FirstOrDefault(y => y.Id == x);
                        if (media != null)
                        {
                            db.JobQuoteMedia.Remove(media);
                            MediaService.RemoveMediaFile(media.FileName);
                        }
                    });
                }

                var mediaFiles = MediaService.SaveFiles(files, 5 - editJobQuote.JobQuoteMedia.Count, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
                if (mediaFiles != null)
                {
                    mediaFiles.ForEach(x => editJobQuote.JobQuoteMedia.Add(new JobQuoteMedia
                    {
                        FileName = x.NewFileName,
                        IsActive = true
                    }));
                }

                try {
                    db.SaveChanges();
                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception ex) {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #6
0
 public static ServiceResponseResult AddInspection(InspectionModel model, Login login, HttpFileCollectionBase files)
 {
     using (var db = new KeysEntities())
     {
         var request = db.PropertyRequest.Where(x => x.Id == model.RequestId).FirstOrDefault();
         if (request.RequestTypeId == 3)
         {
             var replyRequest = new Inspection
             {
                 RequestId   = model.RequestId,
                 Message     = model.Message,
                 CreatedBy   = login.Id,
                 CreatedOn   = DateTime.UtcNow,
                 UpdatedBy   = login.Id,
                 UpdatedOn   = DateTime.UtcNow,
                 IsActive    = true,
                 PropertyId  = model.PropertyId,
                 StatusId    = 1,
                 PercentDone = model.PercentDone,
                 OwnerUpdate = false,
                 IsViewed    = false,
                 IsUpdated   = false
             };
             db.Inspection.Add(replyRequest);
             var fileList = MediaService.SaveFiles(files, 5, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
             if (fileList != null)
             {
                 fileList.ForEach(x => replyRequest.InspectionMedia.Add(new InspectionMedia {
                     NewFileName = x.NewFileName, InspectionId = replyRequest.Id, OldFileName = x.OldFileName, IsActive = true
                 }));
             }
         }
         request.RequestStatusId = 2;
         try
         {
             db.SaveChanges();
             return(new ServiceResponseResult {
                 IsSuccess = true
             });
         }
         catch (Exception ex)
         {
             return(new ServiceResponseResult {
                 IsSuccess = true, ErrorMessage = _error
             });
         }
     }
 }
예제 #7
0
 public static ServiceResponseResult AddRentallApllication(RentalApplicationModel model, Login login, HttpFileCollectionBase files = null)
 {
     using (var db = new KeysEntities())
     {
         var result = new ServiceResponseResult {
             IsSuccess = false
         };
         if (!TenantService.IsLoginATenant(login))
         {
             var errorMsg = "Account not tenant!";
             result.ErrorMessage = errorMsg;
             return(result);
         }
         var rentalApp = new RentalApplication
         {
             RentalListingId     = model.RentalListingId,
             PersonId            = login.Id,
             TenantsCount        = model.TenantsCount,
             ApplicationStatusId = 1,
             Note      = model.Note,
             CreatedBy = login.Email,
             CreatedOn = DateTime.UtcNow,
             UpdatedBy = login.Email,
             UpdatedOn = DateTime.UtcNow,
             IsActive  = true,
         };
         var mediaFiles = MediaService.SaveFiles(files, 5, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
         mediaFiles.ForEach(x => rentalApp.RentalApplicationMedia.Add(new RentalApplicationMedia
         {
             NewFileName = x.NewFileName,
             OldFileName = x.OldFileName,
         }));
         try
         {
             db.RentalApplication.Add(rentalApp);
             db.SaveChanges();
             return(new ServiceResponseResult {
                 IsSuccess = true
             });
         }
         catch (Exception ex)
         {
             return(new ServiceResponseResult {
                 IsSuccess = false, ErrorMessage = _error
             });
         }
     }
 }
예제 #8
0
        public static ServiceResponseResult AddTenantJobRequest(MarketJobModel model, Login login, HttpFileCollectionBase files = null)
        {
            using (var db = new KeysEntities())
            {
                try
                {
                    var request = db.PropertyRequest.Where(x => x.Id == model.RequestId).FirstOrDefault();
                    if (request == null)
                    {
                        return new ServiceResponseResult {
                                   IsSuccess = false, ErrorMessage = "No record found!"
                        }
                    }
                    ;
                    request.RequestStatusId = (int)JobRequestStatus.Accepted;
                    request.IsUpdated       = true;
                    //var tenant = TenantService.GetTenantByLoginId(login.Id);
                    var jobRequest = new TenantJobRequest
                    {
                        PropertyId     = model.PropertyId,
                        OwnerId        = login.Id,
                        JobDescription = model.JobDescription,
                        JobStatusId    = 1, //Bug #2031 (Part 3)
                        MaxBudget      = model.MaxBudget,
                        CreatedOn      = DateTime.UtcNow,
                        CreatedBy      = login.Email,
                        UpdatedOn      = DateTime.UtcNow,
                        UpdatedBy      = login.Email,
                        Title          = model.Title
                    };
                    db.TenantJobRequest.Add(jobRequest);
                    //foreach (int fileId in model.FilesCopy)
                    //{
                    //    var propertyRequestMedia1 = db.PropertyRequestMedia.Where(x => x.Id == fileId).FirstOrDefault();
                    //    var newMarketJob = new TenantJobRequestMedia();

                    //    newMarketJob.TenantJobRequestId = jobRequest.Id;
                    //    newMarketJob.NewFileName = propertyRequestMedia1.NewFileName;
                    //    newMarketJob.OldFileName = propertyRequestMedia1.OldFileName;
                    //    newMarketJob.EntityGuid = new Guid();
                    //    db.TenantJobRequestMedia.Add(newMarketJob);
                    //}
                    var mediaFiles = MediaService.SaveFiles(files, 5, AllowedFileType.Images).NewObject as List <MediaModel>;
                    mediaFiles.ForEach(x => jobRequest.TenantJobRequestMedia.Add(new TenantJobRequestMedia
                    {
                        NewFileName = x.NewFileName,
                        OldFileName = x.OldFileName,
                    }));
                    db.SaveChanges();
                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception ex)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #9
0
        public static ServiceResponseResult EditRentallApllication(RentalApplicationModel model, Login login, HttpFileCollectionBase files = null)
        {
            using (var db = new KeysEntities())
            {
                var result = new ServiceResponseResult {
                    IsSuccess = false
                };
                if (!TenantService.IsLoginATenant(login))
                {
                    var errorMsg = "Account not tenant!";
                    result.ErrorMessage = errorMsg;
                    return(result);
                }
                var foundRentalApplication = db.RentalApplication.Where(x => x.Id == model.Id).FirstOrDefault();
                if (foundRentalApplication == null)
                {
                    var errorMsg = "Cannot locate the Rental application";
                    result.ErrorMessage = errorMsg;
                    return(result);
                }
                else
                {
                    foundRentalApplication.RentalListingId     = model.RentalListingId;
                    foundRentalApplication.PersonId            = login.Id;
                    foundRentalApplication.TenantsCount        = model.TenantsCount;
                    foundRentalApplication.Note                = model.Note;
                    foundRentalApplication.ApplicationStatusId = 1;
                    foundRentalApplication.CreatedBy           = login.Email;
                    foundRentalApplication.CreatedOn           = DateTime.UtcNow;
                    foundRentalApplication.UpdatedBy           = login.Email;
                    foundRentalApplication.UpdatedOn           = DateTime.UtcNow;
                    foundRentalApplication.IsActive            = true;

                    model.FilesRemoved.ForEach(x => {
                        var media = db.RentalApplicationMedia.FirstOrDefault(y => y.Id == x);
                        if (media != null)
                        {
                            db.RentalApplicationMedia.Remove(media); MediaService.RemoveMediaFile(media.NewFileName);
                        }
                    });
                    var mediaFiles = MediaService.SaveFiles(files, 5 - foundRentalApplication.RentalApplicationMedia.Count, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
                    if (mediaFiles != null)
                    {
                        mediaFiles.ForEach(x => foundRentalApplication.RentalApplicationMedia.Add(new RentalApplicationMedia
                        {
                            NewFileName = x.NewFileName,
                            OldFileName = x.OldFileName,
                        }));
                    }
                };
                try
                {
                    db.SaveChanges();
                    var mFiles = new List <MediaModel>();
                    var medias = foundRentalApplication.RentalApplicationMedia
                                 .Select(x => MediaService.GenerateViewProperties(new MediaModel {
                        Id = x.Id, NewFileName = x.NewFileName, OldFileName = x.OldFileName
                    })).ToList();
                    return(new ServiceResponseResult {
                        IsSuccess = true, NewObject = mFiles
                    });
                }
                catch (Exception ex)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #10
0
        public static ServiceResponseResult AddJob(JobModel model, HttpFileCollectionBase files, Login login)
        {
            var result = new ServiceResponseResult {
                IsSuccess = false
            };

            using (var db = new KeysEntities())
            {
                var newJob         = new Job();
                var foundMarketJob = db.TenantJobRequest.Where(x => x.Id == model.Id).First();
                if (foundMarketJob == null)
                {
                    var errorMsg = "Cannot locate the Job in the Market Place";
                    result.ErrorMessage = errorMsg;
                    return(result);
                }
                else
                {
                    foundMarketJob.JobStatusId = 3;
                    newJob.JobDescription      = model.JobDescription;
                    newJob.PropertyId          = model.PropertyId;
                    newJob.JobStatusId         = 2; // should be pending
                    newJob.CreatedBy           = login.Email;
                    newJob.CreatedOn           = DateTime.UtcNow;
                    newJob.UpdatedOn           = DateTime.UtcNow;
                    newJob.UpdatedBy           = login.Email;
                    newJob.PaymentAmount       = 0;
                    newJob.OwnerId             = login.Id;
                    newJob.JobRequestId        = model.Id;
                    newJob.PaymentAmount       = 0;
                    db.Job.Add(newJob);
                };
                var mediaFiles = MediaService.SaveFiles(files, 5, AllowedFileType.AllFiles).NewObject as List <MediaModel>;
                mediaFiles.ForEach(x => { newJob.JobMedia.Add(new JobMedia {
                        NewFileName = x.NewFileName, OldFileName = x.OldFileName
                    }); });
                try
                {
                    db.SaveChanges();
                    //var jobRequestMedia = db.TenantJobRequestMedia.Where(x => x.TenantJobRequestId == model.Id).ToList();
                    //foreach (var mediaFile in jobRequestMedia)
                    //{
                    //    var newJobMedia = new JobMedia();
                    //    newJobMedia.JobId = newJob.Id;
                    //    newJobMedia.NewFileName = mediaFile.NewFileName;
                    //    newJobMedia.OldFileName = mediaFile.OldFileName;
                    //    newJobMedia.PropertyId = model.PropertyId;
                    //    newJobMedia.IsActive = true;
                    //    db.JobMedia.Add(newJobMedia);
                    //    db.SaveChanges();
                    //}
                    return(new ServiceResponseResult {
                        IsSuccess = true
                    });
                }
                catch (Exception)
                {
                    return(new ServiceResponseResult {
                        IsSuccess = false, ErrorMessage = _error
                    });
                }
            }
        }
예제 #11
0
 public static ServiceResponseResult EditProperty(PropertyModel model, HttpFileCollectionBase files, Login user)
 {
     //List<String> dlist = new List<String>();
     using (var db = new KeysEntities())
     {
         var property = db.Property.Where(p => p.Id == model.Id).First();
         property.Name             = model.Name;
         property.Description      = model.Description;
         property.Bedroom          = model.Bedroom;
         property.Bathroom         = model.Bathroom;
         property.FloorArea        = model.FloorArea;
         property.LandSqm          = model.LandSqm;
         property.ParkingSpace     = model.ParkingSpace;
         property.PropertyTypeId   = model.PropertyTypeId;
         property.IsActive         = true;
         property.YearBuilt        = model.YearBuilt;
         property.TargetRent       = model.TargetRent;
         property.Address.Number   = model.Address.Number.Replace(" ", "");
         property.Address.Street   = model.Address.Street.Trim();
         property.Address.City     = model.Address.City.Trim();
         property.Address.Suburb   = model.Address.Suburb;
         property.Address.PostCode = model.Address.PostCode.Replace(" ", "");
         property.IsOwnerOccupied  = model.IsOwnerOccupied;
         property.TargetRent       = model.TargetRent;
         property.UpdatedBy        = user.Email;
         property.UpdatedOn        = DateTime.UtcNow;
         property.TargetRentTypeId = model.TargetRentTypeId;
         if (model.FilesRemoved != null)
         {
             model.FilesRemoved.ToList().ForEach(x =>
             {
                 var media = property.PropertyMedia.FirstOrDefault(y => y.Id == x);
                 if (media != null)
                 {
                     db.PropertyMedia.Remove(media);
                     MediaService.RemoveMediaFile(media.NewFileName);
                 }
             });
         }
         var fileList = MediaService.SaveFiles(files, 5 - property.PropertyMedia.Count(), AllowedFileType.Images).NewObject as List <MediaModel>;
         if (fileList != null)
         {
             fileList.ForEach(x => property.PropertyMedia.Add(new PropertyMedia {
                 NewFileName = x.NewFileName, OldFileName = x.OldFileName
             }));
         }
         try
         {
             db.SaveChanges();
             return(new ServiceResponseResult {
                 IsSuccess = true
             });
         }
         catch (Exception ex)
         {
             return(new ServiceResponseResult {
                 IsSuccess = true, ErrorMessage = "error"
             });
         }
     }
 }