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 IHttpActionResult GetPackageTemplate() { photogEntities db = new photogEntities(); var charge = db.Charges.Where(x => x.StudioID == StudioID).ToList().Select((x, index) => new { x.Name, x.Price, x.Unit }); return(Ok(charge)); }
public IHttpActionResult loadPackageCharges(int id) { photogEntities db = new photogEntities(); var model = db.Charges.Where(x => x.StudioID == id).Select(x => new { x.id, x.Name, x.Description, x.Price, x.Unit }).ToList(); return(Ok(model)); }
public ActionResult ForgotPassword(ForgotPasswordViewModel forgot) { if (ModelState.IsValid && forgot.validate(ModelState)) { photogEntities db = new photogEntities(); var users = db.Users.FirstOrDefault(x => x.email.ToLower() == forgot.Email.ToLower()); if (users != null) { users.isForgotPassword = true; users.verifiedKey = (new Backbone()).Random(8); db.SaveChanges(); string url = string.Format("https://{0}/Account/Validate?key={1}", Request.Url.Authority, users.verifiedKey); string emailContent = String.Format("Click Here to reset your password : {0}", url); var client = new SmtpClient("smtp.titan.email", 587) { Credentials = new NetworkCredential("*****@*****.**", "RareMaHZUU") }; client.Send("*****@*****.**", forgot.Email, "Verify your Account", emailContent); } ViewBag.Email = forgot.Email.ToLower(); return(View("ValidateEmail")); } return(View("ForgotPasswordMain")); }
public ActionResult ResetPassword(ResetPasswordViewModel forgot) { if (TempData["ForgotPasswordEmail"] != null && !string.IsNullOrWhiteSpace(forgot.Email)) { if (ModelState.IsValid) { photogEntities db = new photogEntities(); var users = db.Users.FirstOrDefault(x => x.email.ToLower() == forgot.Email.ToLower()); if (users != null) { var passwordHash = Backbone.ComputeSha256Hash(forgot.Password); users.password = passwordHash; db.SaveChanges(); TempData["ResetPasswordSuccess"] = "1"; return(RedirectToAction("SignIn", "Account")); } } else { TempData.Keep("ForgotPasswordEmail"); return(View(forgot)); } } return(RedirectToAction("Index", "Home")); }
public ActionResult Register(RegisterViewModel registerViewModel) { if (ModelState.IsValid && registerViewModel.validate(ModelState)) { var db = new photogEntities(); var veriKey = (new Backbone()).Random(8); User user = new User { email = registerViewModel.Email.Trim().ToLower(), password = registerViewModel.Password, isVerified = false, verifiedKey = veriKey, name = registerViewModel.Email }; user.UserSystemRoles.Add(new UserSystemRole { systemroleid = 2 }); db.Users.Add(user); db.SaveChanges(); string url = string.Format("https://{0}/Account/Validate?key={1}", Request.Url.Authority, veriKey); string emailContent = String.Format("Click Here to verify Account : {0}", url); var client = new SmtpClient("smtp.titan.email", 587) { Credentials = new NetworkCredential("*****@*****.**", "RareMaHZUU") }; client.Send("*****@*****.**", user.email, "Verify your Account", emailContent); ViewBag.Email = registerViewModel.Email; return(View("ValidateEmail")); } return(View(registerViewModel)); }
public IHttpActionResult loadSearchPackageImg(int id) { photogEntities db = new photogEntities(); var model = db.PackageImages.Where(x => x.PackageID == id).ToList(); var model2 = db.Studios .Join(db.Packages, std => std.id, pkg => pkg.studioid, (std, pkg) => new { std, pkg }) .Join(db.PackageImages, ppkg => ppkg.pkg.id, pkgi => pkgi.PackageID, (ppkg, pkgi) => new { ppkg, pkgi }) .Where(x => x.pkgi.PackageID == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model2) { data.Add(new { item.ppkg.std.id, item.ppkg.std.name, item.ppkg.std.shortDesc, item.pkgi.ID, item.pkgi.ImageName, item.pkgi.PackageID }); } return(Ok(data)); }
public CreatePackageViewModel() { photogEntities db = new photogEntities(); studio = db.Studios.ToList().Where(x => x.UserStudios.Any(y => y.userid == UserAuthentication.Identity().id)).ToList(). Select(x => new SelectListItem { Text = x.name, Value = x.id.ToString() }); }
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 IHttpActionResult GetPackageDetails(int id) { photogEntities db = new photogEntities(); var charge = db.Packages.FirstOrDefault(x => x.id == id); return(Ok(new Package { id = charge.id, depositprice = charge.depositprice, details = charge.details, name = charge.name, price = charge.price, status = charge.status })); }
public ActionResult ChangeStudioUsername(Studio studio) { var regexItem = new Regex("^[a-zA-Z0-9]*$"); ViewBag.IsStudioSetting = "2"; photogEntities db = new photogEntities(); var username = studio.uniquename?.Trim(); studio = db.Studios.FirstOrDefault(x => x.id == studio.id); studio.uniquename = username; var notAllowed = new string[] { "api", "systemapi", "database", "chat", "account", "studio", "payment", "package", "job", "jobc", "jobstatus", "home", "index", "hangfire" }; if (string.IsNullOrWhiteSpace(username)) { ModelState.AddModelError("uniquename", "Studio Username cannot be null"); } else if (notAllowed.FirstOrDefault(x => x.ToLower() == username.ToLower()) != null) { ModelState.AddModelError("uniquename", "Entered username is not allowed"); } else if (!regexItem.IsMatch(username)) { ModelState.AddModelError("uniquename", "Studio Username cannot contain characters and spaces"); } else if (username.Length > 20) { ModelState.AddModelError("uniquename", "Studio Username cannot be more than 20 words"); } else { var checkUsername = db.Studios.FirstOrDefault(x => x.uniquename.ToLower() == username.ToLower() && x.id != studio.id); if (checkUsername != null) { ModelState.AddModelError("uniquename", "Studio Username is already taken by other studio"); } } if (ModelState.IsValid) { db.SaveChanges(); TempData["Changes"] = "Studio Username have been changed successfully"; return(Redirect(string.Format("/{0}/{1}", username, "Settings"))); } return(View(studio)); }
public IHttpActionResult deletePackageCharges(int id) { photogEntities db = new photogEntities(); var model = db.Charges.FirstOrDefault(x => x.id == id); if (model != null) { db.Charges.Remove(model); db.SaveChanges(); return(Ok()); } return(BadRequest()); }
public static User Identity() { var identity = (ClaimsPrincipal)Thread.CurrentPrincipal; var userData = identity.Claims.FirstOrDefault(x => x.Type == "UserDataJson"); if (userData != null) { var userJson = JsonConvert.DeserializeObject <User>(userData.Value); photogEntities db = new photogEntities(); return(db.Users.FirstOrDefault(X => X.id == userJson.id)); } return(null); }
public IHttpActionResult UploadProfilePic() { var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null; photogEntities db = new photogEntities(); var studio = db.Studios.FirstOrDefault(x => x.id == StudioID); if (file != null && file.ContentLength > 0) { AzureBlob BlobManagerObj = new AzureBlob(4); string FileName = BlobManagerObj.UploadFileAPI(file, null); FileName = FileName.Substring(FileName.IndexOf('/') + 1); return(Ok(FileName)); } return(BadRequest()); }
public IHttpActionResult loadCharges(int id) { photogEntities db = new photogEntities(); var model = db.Charges.Where(x => x.StudioID == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, item.Name, }); } return(Ok(data)); }
public ActionResult Validate(string key) { var db = new photogEntities(); var checkItem = db.Users.FirstOrDefault(x => x.verifiedKey.ToLower() == key.ToLower()); if (checkItem == null) { return(new HttpUnauthorizedResult("Invalid Link")); } else if (checkItem.isVerified && checkItem.isForgotPassword) { checkItem.isForgotPassword = false; checkItem.emailTemp = null; checkItem.verifiedKey = null; TempData["ForgotPasswordEmail"] = checkItem.email; return(RedirectToAction("ResetPassword", "Account")); } else if (checkItem.isVerified && string.IsNullOrWhiteSpace(checkItem.emailTemp)) { return(new HttpUnauthorizedResult("Expired Link")); } if (!string.IsNullOrWhiteSpace(checkItem.emailTemp)) { var check = db.Users.FirstOrDefault(x => x.email.ToLower() == checkItem.emailTemp.ToLower()); if (check != null) { return(new HttpUnauthorizedResult("Expired Link")); } checkItem.email = checkItem.emailTemp; checkItem.emailTemp = null; } else { checkItem.isVerified = true; } checkItem.verifiedKey = null; db.SaveChanges(); TempData["isVerified"] = "1"; return(RedirectToAction("SignIn", "Account")); }
public IHttpActionResult loadJobStatus() { photogEntities db = new photogEntities(); var model = db.JobStatus.ToList().Where(x => x.id != 6); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, item.name, }); } return(Ok(data)); }
private static ClaimsIdentity Identity(User user) { var identity = Thread.CurrentPrincipal.Identity as ClaimsIdentity; var userDataJson = identity.FindFirst("UserDataJson"); var userName = identity.FindFirst(ClaimTypes.Name); var userEmail = identity.FindFirst(ClaimTypes.Email); var userProfilePic = identity.FindFirst("ProfilePicUrl"); var roles = identity.FindFirst("Roles"); if (userDataJson != null) { photogEntities db = new photogEntities(); user = JsonConvert.DeserializeObject <User>(userDataJson.Value); user = db.Users.FirstOrDefault(x => x.id == user.id); identity.RemoveClaim(userDataJson); identity.RemoveClaim(userName); identity.RemoveClaim(userEmail); identity.RemoveClaim(userProfilePic); identity.RemoveClaim(roles); } var userObj = new User { id = user.id, email = user.email, name = user.name, dateofbirth = user.dateofbirth, isVerified = user.isVerified, imgprofile = user.imgprofile, phonenumber = user.phonenumber }; var userData = JsonConvert.SerializeObject(userObj, Formatting.None, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }); string urlPic = (string.IsNullOrWhiteSpace(user.imgprofile)) ? "https://storagephotog2.blob.core.windows.net/user-data/default/default-profile.jpg" : String.Format("https://storagephotog2.blob.core.windows.net/user-data/{0}/{1}", user.id, user.imgprofile); var UserRole = JsonConvert.SerializeObject(user.UserSystemRoles.ToList().Select(x => x.SystemRole.name)); var claimsIdentity = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.name), new Claim(ClaimTypes.Email, user.email), new Claim(type: "UserDataJson", value: userData), new Claim(type: "ProfilePicUrl", value: urlPic), new Claim(type: "Roles", value: UserRole) }, "ApplicationCookie"); return(claimsIdentity); }
public async System.Threading.Tasks.Task <IHttpActionResult> cancelJob(int id) { photogEntities db = new photogEntities(); var job = db.Jobs.FirstOrDefault(x => x.id == id); var chatkey = job.Package.Studio.ChatKeys.FirstOrDefault(x => x.UserID == job.userid).ChatKeyID; var packageId = job.Package.id; if (job != null) { foreach (var item in job.Invoices.ToList()) { db.Invoices.Remove(item); } foreach (var item in job.JobCharges.ToList()) { db.JobCharges.Remove(item); } foreach (var item in job.JobDates.ToList()) { db.JobDates.Remove(item); } db.Jobs.Remove(job); db.SaveChanges(); FirestoreDb firestore = FirestoreDb.Create("photogw2"); var collection = firestore.Collection("Quotation"); var query = collection.WhereEqualTo("ChatKey", chatkey); var snapshot = await query.GetSnapshotAsync(); var deserializedDataQuoteAll = snapshot.FirstOrDefault().ConvertTo <QuotationModel>(); var chat = db.ChatKeys.FirstOrDefault(x => x.ChatKeyID == deserializedDataQuoteAll.ChatKey); var deserializedDataSel = deserializedDataQuoteAll.Packages.FirstOrDefault(x => x.Package.Id == packageId); deserializedDataQuoteAll.Packages.Remove(deserializedDataSel); await collection.Document(snapshot.FirstOrDefault().Id).SetAsync(deserializedDataQuoteAll); return(Ok()); } else { return(BadRequest()); } }
public IHttpActionResult loadJobCharges(int id) { photogEntities db = new photogEntities(); var model = db.JobCharges.Where(x => x.jobid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, amount = "RM" + item.amount.ToString(".00"), item.remarks }); } return(Ok(data)); }
public IHttpActionResult loadJobDate(int id) { photogEntities db = new photogEntities(); var model = db.JobDates.Where(x => x.jobid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { pdatetime = item.jobdate1.ToString("dd/MM/yyyy hh:mm tt"), item.location, item.description, item.id }); } return(Ok(data)); }
public ActionResult Index() { photogEntities db = new photogEntities(); SearchViewModel src = new SearchViewModel(); src.pkg = db.Packages.ToList().OrderBy(x => Guid.NewGuid()).ToList(); if (User.Identity.IsAuthenticated) { if (User.IsInRole("Admin")) { return(RedirectToAction("Index", "Database")); } } ViewBag.Title = "Home Page"; return(View(src)); }
public IHttpActionResult loadJobStaff(int id) { photogEntities db = new photogEntities(); var model = db.JobDateUsers.Where(x => x.JobDate.jobid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.UserStudio.User.name, item.UserStudio.User.email, phone = item.UserStudio.User.phonenumber, item.id }); } return(Ok(data)); }
public ActionResult Search(SearchViewModel srcres) { photogEntities db = new photogEntities(); var a = db.Packages.ToList(); var b = db.Studios.ToList(); if (srcres.keyword != null) { a = a.Where(x => x.name.ToLower().Contains(srcres.keyword.ToLower())).ToList(); b = b.Where(x => x.name.ToLower().Contains(srcres.keyword.ToLower())).ToList(); } if (srcres.sortby != null) { if (srcres.sortby == "pricelh") { a = a.OrderBy(x => x.price).ToList(); } else if (srcres.sortby == "pricehl") { a = a.OrderByDescending(x => x.price).ToList(); } } if (srcres.minprice != null) { a = a.Where(z => z.price >= decimal.Parse(srcres.minprice)).ToList(); } if (srcres.maxprice != null) { a = a.Where(z => z.price <= decimal.Parse(srcres.maxprice)).ToList(); } srcres.pkg = a; srcres.std = b; return(View(srcres)); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); photogEntities db = new photogEntities(); var permalink = (string)filterContext.RouteData.Values["permalink"]; var checkStudio = db.Studios.FirstOrDefault(x => x.uniquename.ToLower() == permalink.ToLower()); if (checkStudio == null) { filterContext.Result = new HttpNotFoundResult(); return; } var UserStudio = UserAuthentication.Identity()?.UserStudios.FirstOrDefault(x => x.studioid == checkStudio.id); if (RoleID != 0) { if (UserStudio == null) { filterContext.Result = new HttpUnauthorizedResult(); return; } if (RoleID == 1 && UserStudio.studioroleid != RoleID) { filterContext.Result = new HttpUnauthorizedResult(); return; } } if (UserStudio != null) { filterContext.Controller.ViewBag.StudioRoleID = UserStudio.studioroleid; } filterContext.Controller.ViewBag.StudioID = checkStudio.id; filterContext.Controller.ViewBag.StudioUrl = checkStudio.uniquename; filterContext.Controller.ViewBag.StudioName = checkStudio.name; }
public IHttpActionResult loadInvoices(int id) { photogEntities db = new photogEntities(); var model = db.Invoices.Where(x => x.jobid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, invdate = item.invdate.ToString("dd/MM/yyyy"), expirydate = item.expirydate.ToString("dd/MM/yyyy"), item.total, item.totalunpaid, item.detail, item.status }); } return(Ok(data)); }
public IHttpActionResult loadPackages(int id) { photogEntities db = new photogEntities(); var model = db.Packages.Where(x => x.studioid == id).ToList(); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, item.name, price = item.price.ToString(".00"), studioname = item.Studio.name, depositprice = item.depositprice.ToString(".00"), item.details, item.status }); } return(Ok(data)); }
public IHttpActionResult loadJobAdmin(int id, int Status) { photogEntities db = new photogEntities(); var model = db.Jobs.Where(x => x.Package.studioid == id).ToList().Where(x => x.jobstatusid == Status); List <dynamic> data = new List <dynamic>(); foreach (var item in model) { data.Add(new { item.id, DateCreated = item.DateCreated.ToString("dd/MM/yyyy hh:mm"), client = item.User.name, package = item.Package.name, status = item.JobStatu.name, paymentstatus = item.Invoices.Any() ? item.Invoices.OrderByDescending(x => x.id).FirstOrDefault(x => x.jobid == item.id).status : "-", paymentdetail = item.Invoices.Any() ? item.Invoices.OrderByDescending(x => x.id).FirstOrDefault(x => x.jobid == item.id).detail : "-" }); } return(Ok(data)); }
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)); }