public ActionResult CreateChat(int?package) { User whichuser = (User)UserAuthentication.Identity(); long studioID = (long)ViewBag.StudioID; var checkchatkey = ent.ChatKeys.FirstOrDefault(x => x.ChatKey_Key == "studiokey" + studioID + "userkey" + whichuser.id); if (checkchatkey == null) { checkchatkey = new ChatKey(); checkchatkey.ChatKey_Key = "studiokey" + studioID + "userkey" + whichuser.id; checkchatkey.UserID = whichuser.id; checkchatkey.StudioID = (int)studioID; ent.ChatKeys.Add(checkchatkey); ent.SaveChanges(); } if (package.HasValue) { TempData["Package"] = package; } return(Redirect(string.Format("/{0}?key={1}", "Chat", checkchatkey.ChatKeyID))); }
public ActionResult Edit(int id) { var data = db.Packages.Find(id); if (ViewBag.StudioID != data.studioid) { return(RedirectToAction("packagehome")); } if (!data.Studio.UserStudios.Any(x => x.userid == UserAuthentication.Identity().id)) { return(RedirectToAction("Error500", "Home", new { errormsg = "You picked the wrong studio Fool!" })); } var edit = new CreatePackageViewModel { id = data.id, depoprice = data.depositprice, details = data.details, price = data.price, studioid = data.studioid.Value, name = data.name, images = data.PackageImages.ToList(), ImgName = data.PackageImages.FirstOrDefault().ImageName }; return(View("editpackage", edit)); }
public ActionResult Detail(int id) { try { var job = db.Jobs.Find(id); //var jobdate = job != null ? db.JobDates.Where(x => x.jobid == id).ToList() : null; //var jobdateuser = jobdate != null ? db.JobDateUsers.Where(x => x.JobDate.jobid == job.id).ToList() : null; //var jobcharge = job != null ? db.JobCharges.FirstOrDefault(x => x.jobid == id) : null; if (ViewBag.StudioID != job.Package.studioid) { return(RedirectToAction("jobhome")); } var identity = UserAuthentication.Identity(); if (!db.Jobs.Any(x => x.userid == identity.id && x.id == id) && ViewBag.StudioRoleID == null) { return(Redirect("/")); } return(View(job)); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
public ActionResult CreateJobStatus() { if (!UserAuthentication.Identity().UserSystemRoles.Any(x => x.systemroleid == 1)) { return(View("error")); } return(View(new JobStatu())); }
public ActionResult Edit() { var user = UserAuthentication.Identity(); ProfileViewModel profile = new ProfileViewModel { Email = user.email, Name = user.name, PhoneNum = user.phonenumber }; return(View(profile)); }
public ActionResult Index() { photogEntities db = new photogEntities(); var userid = UserAuthentication.Identity().id; var model = db.UserStudios.Where(x => x.userid == userid).OrderBy(x => x.Studio.name).ToList(); return(PartialView("~/Views/Shared/_LayoutStudioList.cshtml", model)); }
public ActionResult Create() { int?studioid = ViewBag.StudioID; if (!db.UserStudios.ToList().Any(x => x.userid == UserAuthentication.Identity().id&& x.studioid == studioid.Value)) { return(RedirectToAction("Error500", "Home", new { errormsg = "You picked the wrong studio Fool!" })); } return(View("editpackage", new CreatePackageViewModel())); }
public async System.Threading.Tasks.Task <ActionResult> Restore() { var user = UserAuthentication.Identity(); var obj = await DatabaseOperation.SetInitDataAsync("Restore", user.name, user.email); var id = (string)obj.FirstOrDefault(x => x.Key == "id").Value; var date = (DateTime)obj.FirstOrDefault(x => x.Key == "date").Value; BackgroundJob.Enqueue(() => DatabaseOperation.RestoreProcessAsync(id, date)); return(RedirectToAction("Progress")); }
public ActionResult editjobstatus(int id) { if (!UserAuthentication.Identity().UserSystemRoles.Any(x => x.systemroleid == 1)) { return(View("error")); } var data = db.JobStatus.Find(id); return(View(data)); }
public ActionResult Detail(int id) { var data = db.Packages.Find(id); if (ViewBag.StudioID != data.studioid) { return(RedirectToAction("packagehome")); } ViewBag.user = UserAuthentication.Identity().id; ViewBag.role = UserAuthentication.Identity().UserSystemRoles.Any(x => x.userid == ViewBag.user && x.systemroleid == 1); return(View("PackageDetail", data)); }
public async System.Threading.Tasks.Task <ActionResult> RestoreBlob(string file) { var url = String.Format("https://storagephotog2.blob.core.windows.net/db-backup/{0}", file); var user = UserAuthentication.Identity(); var obj = await DatabaseOperation.SetInitDataAsync("Restore (Azure Blob)", user.name, user.email); var id = (string)obj.FirstOrDefault(x => x.Key == "id").Value; var date = (DateTime)obj.FirstOrDefault(x => x.Key == "date").Value; BackgroundJob.Enqueue(() => DatabaseOperation.RestoreAzureProcessAsync(id, date, url)); return(RedirectToAction("Progress")); }
public ActionResult PaymentView(int id) { try { ViewBag.jobid = id; ViewBag.hasDeposit = db.Invoices.Any(x => x.jobid == id && x.status == "Paid" && x.detail == "Deposit"); ViewBag.hasFull = db.Invoices.Any(x => x.jobid == id && x.detail == "Full Payment"); var uid = UserAuthentication.Identity().id; ViewBag.isJobClient = db.Jobs.Any(x => x.id == id && x.userid == uid); return(View()); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
public ActionResult Create(CreatePackageViewModel data) { if (!db.UserStudios.ToList().Any(x => x.userid == UserAuthentication.Identity().id&& x.studioid == data.studioid)) { return(RedirectToAction("Error500", "Home", new { errormsg = "You picked the wrong studio Fool!" })); } if (ModelState.IsValid) { try { if (data.price < data.depoprice || data.price <= 0 || data.depoprice < 0) { TempData["error"] = "Invalid price setting"; return(View("editpackage", data)); } var pack = new Package { depositprice = data.depoprice, details = string.IsNullOrWhiteSpace(data.details) ? null : data.details, name = data.name, price = data.price, studioid = data.studioid, status = "Enabled" }; if (!string.IsNullOrWhiteSpace(data.ImgName)) { PackageImage package = new PackageImage { ImageName = data.ImgName }; pack.PackageImages.Add(package); } db.Packages.Add(pack); db.SaveChanges(); return(RedirectToAction("PackageHome")); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } } return(View("editpackage", data)); }
public ActionResult deletejobstatus(int id) { if (!UserAuthentication.Identity().UserSystemRoles.Any(x => x.systemroleid == 1)) { return(View("error")); } try { var data = db.JobStatus.Find(id); db.JobStatus.Remove(data); db.SaveChanges(); return(Redirect("/jobstatus")); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
//[StudioAPIValidate(RoleID = 1)] public IHttpActionResult GetRole(int id) { try { var roles = db.UserStudios.ToList().FirstOrDefault(x => x.studioid == StudioID && x.userid == id); return(Ok(new { roles.User.name, roles.User.email, roles.userid, StudioRole = roles.StudioRole.id, selfUser = (roles.userid == UserAuthentication.Identity().id) })); } catch { return(BadRequest()); } }
public ActionResult JobCustomerDetail(int id) { try { var job = db.Jobs.Find(id); //var jobdate = job != null ? db.JobDates.Where(x => x.jobid == id).ToList() : null; //var jobdateuser = jobdate != null ? db.JobDateUsers.Where(x => x.JobDate.jobid == job.id).ToList() : null; //var jobcharge = job != null ? db.JobCharges.FirstOrDefault(x => x.jobid == id) : null; if (job.userid != UserAuthentication.Identity().id) { return(Redirect("/")); } ViewBag.StudioUrl = job.Package.Studio.uniquename; return(View("detail", job)); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
public IHttpActionResult UploadProfilePic() { var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null; if (file != null && file.ContentLength > 0) { string fl = file.FileName; AzureBlob BlobManagerObj = new AzureBlob(1); string FileName = BlobManagerObj.UploadFileAPI(file, UserAuthentication.Identity().id.ToString()); FileName = FileName.Substring(FileName.IndexOf('/') + 1); photogEntities db = new photogEntities(); var id = UserAuthentication.Identity().id; var user = db.Users.FirstOrDefault(x => x.id == id); user.imgprofile = FileName; db.SaveChanges(); UserAuthentication.UpdateClaim(); return(Ok(FileName)); } return(BadRequest()); }
public IHttpActionResult loadJobStaffMain(int id) { photogEntities db = new photogEntities(); var aid = UserAuthentication.Identity().id; var model = db.JobDateUsers.Where(x => x.UserStudio.userid == aid && x.UserStudio.studioid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.JobDate.Job.id, DateCreated = item.JobDate.Job.DateCreated.ToString("dd/MM/yyyy hh:mm"), client = item.JobDate.Job.User.name, package = item.JobDate.Job.Package.name, status = item.JobDate.Job.JobStatu.name, paymentstatus = item.JobDate.Job.Invoices.Any() ? item.JobDate.Job.Invoices.OrderByDescending(x => x.id).FirstOrDefault(x => x.jobid == item.JobDate.jobid).status : "-", paymentdetail = item.JobDate.Job.Invoices.Any() ? item.JobDate.Job.Invoices.OrderByDescending(x => x.id).FirstOrDefault(x => x.jobid == item.JobDate.jobid).detail : "-" }); } return(Ok(data)); }
public IHttpActionResult DeleteProfilePic() { var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null; if (file != null && file.ContentLength > 0) { string fl = file.FileName; if (file.FileName == UserAuthentication.Identity().imgprofile) { return(Ok()); } } else { AzureBlob BlobManagerObj = new AzureBlob(1); photogEntities db = new photogEntities(); var id = UserAuthentication.Identity().id; var user = db.Users.FirstOrDefault(x => x.id == id); if (user.imgprofile == null) { return(Ok()); } else if (!string.IsNullOrWhiteSpace(BlobManagerObj.DeleteBlob(user.id.ToString(), User.Identity.GetProfilePhotoLink()))) { user.imgprofile = null; db.SaveChanges(); UserAuthentication.UpdateClaim(); return(Ok()); } } return(BadRequest()); }
public async Task <ActionResult> Delete(int id) { try { var package = db.Packages.FirstOrDefault(x => x.id == id); if (ViewBag.StudioID != package.studioid) { return(RedirectToAction("packagehome")); } if (package.Studio.UserStudios.Any(x => x.userid == UserAuthentication.Identity().id)) { if (package.status == "Enabled") { package.status = "Disabled"; } else { package.status = "Enabled"; } db.SaveChanges(); await UpdateFirebaseOrder(package); return(RedirectToAction("packagehome")); } else { return(RedirectToAction("Error500", "Home", new { errormsg = "You are not authorized to delete the package F****t!" })); } } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
public ActionResult editjobstatus(JobStatu data) { if (!UserAuthentication.Identity().UserSystemRoles.Any(x => x.systemroleid == 1)) { return(View("error")); } if (ModelState.IsValid) { try { db.Entry(data).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); return(Redirect("/jobstatus")); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } } return(View(data)); }
public ActionResult Create(CreateStudioViewModel createStudio) { createStudio.name = createStudio.name?.Trim(); createStudio.SelectedCity = createStudio.SelectedCity?.Trim(); createStudio.SelectedState = createStudio.SelectedState?.Trim(); ViewBag.IsStudioSetting = "true"; ViewBag.Header = "Create New Studio"; ViewBag.IsStudioSetting = "1"; if (string.IsNullOrWhiteSpace(createStudio.name)) { ModelState.AddModelError("name", "Studio Name cannot be null"); } else { if (db.Studios.FirstOrDefault(x => x.name.ToLower() == createStudio.name.ToLower()) != null) { ModelState.AddModelError("name", "Studio Name is not available"); } } if (!string.IsNullOrWhiteSpace(createStudio.phoneNum) && !int.TryParse(createStudio.phoneNum, out int result)) { ModelState.AddModelError("phoneNum", "Invalid Phone Number"); } if (!string.IsNullOrWhiteSpace(createStudio.email) && !Backbone.IsValidEmail(createStudio.email)) { ModelState.AddModelError("email", "Invalid Email Address"); } if (ModelState.IsValid) { var studio = new Studio(); studio.name = createStudio.name; studio.shortDesc = createStudio.shortDesc; studio.phoneNum = createStudio.phoneNum; studio.email = createStudio.email; studio.State = createStudio.SelectedState; studio.City = createStudio.SelectedCity; studio.longDesc = createStudio.longDesc; studio.uniquename = (new Backbone()).Random(5); if (!string.IsNullOrWhiteSpace(createStudio.Facebook)) { studio.StudioLinks.Add(new StudioLink { name = "Facebook", address = createStudio.Facebook }); } if (!string.IsNullOrWhiteSpace(createStudio.Twitter)) { studio.StudioLinks.Add(new StudioLink { name = "Twitter", address = createStudio.Twitter }); } if (!string.IsNullOrWhiteSpace(createStudio.Instagram)) { studio.StudioLinks.Add(new StudioLink { name = "Instagram", address = createStudio.Instagram }); } UserStudio userCred = new UserStudio { userid = UserAuthentication.Identity().id, studioroleid = 1 }; studio.UserStudios.Add(userCred); db.Studios.Add(studio); db.SaveChanges(); AzureBlob blob = new AzureBlob(4); try { blob.MoveBlobFromTemp(2, studio.id.ToString(), createStudio.ImgLogo); studio.ImgLogo = createStudio.ImgLogo; } catch { } try { blob.MoveBlobFromTemp(2, studio.id.ToString(), createStudio.ImgCover); studio.ImgCover = createStudio.ImgCover; } catch { } db.SaveChanges(); return(Redirect(string.Format("/{0}", studio.uniquename))); } return(View("~/Views/StudioPermalink/Settings.cshtml", createStudio)); }
public ActionResult Manage() { photogEntities db = new photogEntities(); var studioList = db.Studios.ToList().Where(x => x.UserStudios.Any(y => y.userid == UserAuthentication.Identity().id)).ToList(); return(View("ManageStudios", studioList)); }
public async Task <ActionResult> Edit(CreatePackageViewModel data) { if (ViewBag.StudioID != data.studioid) { return(RedirectToAction("packagehome")); } if (!db.UserStudios.ToList().Any(x => x.userid == UserAuthentication.Identity().id&& x.studioid == data.studioid)) { return(RedirectToAction("Error500", "Home", new { errormsg = "You picked the wrong studio Fool!" })); } if (ModelState.IsValid) { try { if (data.price < data.depoprice || data.price <= 0 || data.depoprice < 0) { TempData["error"] = "Invalid price setting"; data.images = db.Packages.Find(data.id).PackageImages.ToList(); return(View("editpackage", data)); } var edit = db.Packages.First(x => x.id == data.id); edit.depositprice = data.depoprice; edit.details = string.IsNullOrWhiteSpace(data.details) ? null : data.details; edit.name = data.name; edit.price = data.price; edit.studioid = data.studioid; var img = db.PackageImages.Where(x => x.PackageID == data.id); if (!string.IsNullOrWhiteSpace(data.ImgName)) { if (img == null || img.FirstOrDefault(x => x.ImageName.ToLower() == data.ImgName.ToLower()) == null) { AzureBlob BlobManagerObj = new AzureBlob(2); foreach (var item in img) { BlobManagerObj.DeleteBlob(data.studioid.ToString(), String.Format("https://storagephotog2.blob.core.windows.net/studio-data/{0}/{1}", item.Package.studioid, item.ImageName)); } db.PackageImages.RemoveRange(img); PackageImage package = new PackageImage { ImageName = data.ImgName }; edit.PackageImages.Add(package); } } else { AzureBlob BlobManagerObj = new AzureBlob(2); foreach (var item in img) { BlobManagerObj.DeleteBlob(data.studioid.ToString(), String.Format("https://storagephotog2.blob.core.windows.net/studio-data/{0}/{1}", item.Package.studioid, item.ImageName)); } db.PackageImages.RemoveRange(img); } db.SaveChanges(); await UpdateFirebaseOrder(edit); return(RedirectToAction("PackageHome")); } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } } return(View("editpackage", data)); }
public ActionResult Edit(ProfileViewModel profile) { photogEntities db = new photogEntities(); var userID = UserAuthentication.Identity().id; var user = db.Users.FirstOrDefault(x => x.id == userID); if (ModelState.IsValid) { if (profile.EditID == 1) { user.name = profile.Name; } else if (profile.EditID == 2) { user.phonenumber = profile.PhoneNum; } else if (profile.EditID == 3) { if (user.email.ToLower() == profile.Email.ToLower()) { ModelState.AddModelError("Email", "Email is same with existing email"); } else if (db.Users.FirstOrDefault(x => x.id != user.id && x.email.ToLower() == profile.Email.ToLower()) != null) { ModelState.AddModelError("Email", "Email already exists"); } if (!ModelState.IsValid) { profile = new ProfileViewModel { Email = profile.Email, Name = user.name, PhoneNum = user.phonenumber }; return(View(profile)); } var veriKey = (new Backbone()).Random(8); string url = string.Format("https://{0}/Account/Validate?key={1}", Request.Url.Authority, veriKey); string emailContent = String.Format("Click Here to verify your new Email : {0}", url); var client = new SmtpClient("smtp.titan.email", 587) { Credentials = new NetworkCredential("*****@*****.**", "RareMaHZUU") }; client.Send("*****@*****.**", profile.Email, "Verify your new Email", emailContent); user.emailTemp = profile.Email; user.verifiedKey = veriKey; TempData["Email"] = "An email has been sent to " + profile.Email + ", Please check your inbox to validate your email address change"; } else { var checkold = Backbone.ComputeSha256Hash(profile.OldPassword).ToLower(); if (checkold != user.password.ToLower()) { ModelState.AddModelError("OldPassword", "Invalid old password"); } else if (profile.NewPassword != profile.ConfirmPassword) { ModelState.AddModelError("NewPassword", "New Password does not match"); } if (!ModelState.IsValid) { profile = new ProfileViewModel { Email = user.email, Name = user.name, PhoneNum = user.phonenumber }; return(View(profile)); } var passwordHash = Backbone.ComputeSha256Hash(profile.NewPassword); user.password = passwordHash; } TempData["SuccessMessage"] = "Changes has been saved successfully"; db.SaveChanges(); UserAuthentication.UpdateClaim(); return(RedirectToAction("Edit", "Account")); } profile = new ProfileViewModel { Email = user.email, Name = user.name, PhoneNum = user.phonenumber }; return(View(profile)); }
public ActionResult CreateFullInvoice(int id) { try { var job = db.Jobs.Find(id); if (job.Invoices.Any(x => x.detail == "Deposit" && x.status == "Paid")) { var invoice = new Invoice { expirydate = DateTime.Now.AddMonths(3), invdate = DateTime.Now, jobid = id, total = (job.TotalPrice) - job.Package.depositprice, totalunpaid = (job.TotalPrice) - job.Package.depositprice, detail = "Full Payment", status = "Not Paid", }; db.Invoices.Add(invoice); db.SaveChanges(); var uid = UserAuthentication.Identity().id; if (ViewBag.StudioRoleID != null && !db.Jobs.Any(x => x.id == id && x.userid == uid)) { return(RedirectToAction("paymentview/" + invoice.jobid)); } else { return(RedirectToAction("checkoutindex/" + invoice.id, "payment")); } } else { var invoice = new Invoice { expirydate = DateTime.Now.AddMonths(3), invdate = DateTime.Now, jobid = id, total = job.TotalPrice, totalunpaid = job.TotalPrice, detail = "Full Payment", status = "Not Paid", }; db.Invoices.Add(invoice); db.SaveChanges(); var uid = UserAuthentication.Identity().id; if (ViewBag.StudioRoleID != null && !db.Jobs.Any(x => x.id == id && x.userid == uid)) { return(RedirectToAction("paymentview/" + invoice.jobid)); } else { return(RedirectToAction("checkoutindex/" + invoice.id, "payment")); } } } catch (Exception e) { return(RedirectToAction("Error500", "Home", new { errormsg = e.Message })); } }
private async Task <ActionResult> LoadChatAsync(int?key) { //ChatMain Page if (key.HasValue) { ChatKey chat = ent.ChatKeys.FirstOrDefault(x => x.ChatKeyID == key); if (chat != null) { FirestoreDb firestore = FirestoreDb.Create("photogw2"); string docID; var collection = firestore.Collection("Quotation"); var snapshot = await collection.WhereEqualTo("ChatKey", chat.ChatKeyID).GetSnapshotAsync(); if (snapshot.Count() != 0) { docID = snapshot.Documents.FirstOrDefault().Id; } else { var arr = new Dictionary <string, object>().ToArray(); Dictionary <string, object> data = new Dictionary <string, object> { { "ChatKey", chat.ChatKeyID } }; var submitData = collection.Document(); await submitData.SetAsync(data); docID = submitData.Id; } if (ViewBag.StudioID != null) { int studioID = (int)ViewBag.StudioID; ViewBag.PackageList = ent.Packages.Where(x => x.studioid == studioID && x.status.ToLower() != "disabled").ToList(); } ViewBag.QuotationID = docID; if (TempData["Package"] != null) { ViewBag.SelectedPackageID = TempData["Package"]; } return(View("ChatMain", chat)); } } //Chat List Page List <ChatKey> chatlist; if (ViewBag.StudioID != null) { long studioID = (long)ViewBag.StudioID; chatlist = ent.ChatKeys.Where(x => x.StudioID == studioID).ToList(); } else { User whichuser = (User)UserAuthentication.Identity(); chatlist = ent.ChatKeys.Where(x => x.UserID == whichuser.id).ToList(); } return(View("ChatList", chatlist)); }
//[StudioAPIValidate(RoleID = 1)] public IHttpActionResult SetRoleList(RoleModel role) { try { if (ModelState.IsValid) { photogEntities db = new photogEntities(); var user = db.Users.FirstOrDefault(x => x.email.ToLower() == role.Email.ToLower().Trim()); if (user == null) { return(BadRequest("User email does not exist")); } else if (!user.isVerified) { return(BadRequest("User is not verified.")); } if (role.Operation == 1) { var userStudio = user.UserStudios.FirstOrDefault(x => x.studioid == StudioID); if (userStudio == null) { db.UserStudios.Add(new UserStudio { studioid = StudioID, userid = user.id, studioroleid = role.Role }); } else if (userStudio.isActive == false) { userStudio.isActive = true; } else { return(BadRequest("User already registered with this Studio")); } db.SaveChanges(); return(Ok("User has been added successfully")); } else if (role.Operation == 2) { var userStudio = user.UserStudios.FirstOrDefault(x => x.studioid == StudioID); if (userStudio == null) { return(BadRequest("User is not registered with this Studio")); } userStudio.studioroleid = role.Role; db.SaveChanges(); return(Ok("User role have been updated")); } else if (role.Operation == 3) { var userStudio = user.UserStudios.FirstOrDefault(x => x.studioid == StudioID); if (userStudio == null) { return(BadRequest("User is not registered with this Studio")); } else if (userStudio.userid == UserAuthentication.Identity().id) { return(BadRequest("Cannot delete your own profile from studio!")); } else if (db.UserStudios.Where(x => x.id != userStudio.id && x.studioroleid == 1).Count() <= 0) { return(BadRequest("No Admin Detected. Please assign other admin before removing account")); } else if (userStudio.JobDateUsers.Count() != 0) { userStudio.isActive = false; } else { db.UserStudios.Remove(userStudio); } db.SaveChanges(); return(Ok("User role have been deleted")); } } return(BadRequest("Invalid Request")); } catch { return(InternalServerError()); } }