Esempio n. 1
0
        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)));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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 }));
            }
        }
Esempio n. 4
0
        public ActionResult CreateJobStatus()
        {
            if (!UserAuthentication.Identity().UserSystemRoles.Any(x => x.systemroleid == 1))
            {
                return(View("error"));
            }

            return(View(new JobStatu()));
        }
Esempio n. 5
0
        public ActionResult Edit()
        {
            var user = UserAuthentication.Identity();
            ProfileViewModel profile = new ProfileViewModel {
                Email = user.email, Name = user.name, PhoneNum = user.phonenumber
            };

            return(View(profile));
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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()));
        }
Esempio n. 8
0
        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"));
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
        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"));
        }
Esempio n. 12
0
 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 }));
     }
 }
Esempio n. 13
0
        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));
        }
Esempio n. 14
0
        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 }));
            }
        }
Esempio n. 15
0
        //[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());
            }
        }
Esempio n. 16
0
        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 }));
            }
        }
Esempio n. 17
0
        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());
        }
Esempio n. 18
0
        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));
        }
Esempio n. 19
0
        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());
        }
Esempio n. 20
0
        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 }));
            }
        }
Esempio n. 21
0
        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));
        }
Esempio n. 22
0
        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));
        }
Esempio n. 23
0
        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));
        }
Esempio n. 24
0
        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));
        }
Esempio n. 25
0
        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));
        }
Esempio n. 26
0
        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 }));
            }
        }
Esempio n. 27
0
        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));
        }
Esempio n. 28
0
        //[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());
            }
        }