Ejemplo n.º 1
0
        public ResponseBase ConfirmEditedMusic(Music music, Model.File WAVUpload,
                                               Model.File MP3Upload, ConfirmTypeAction confirmAction, string DeclineReason)
        {
            ResponseBase res = new ResponseBase();

            try
            {
                // delete from confirmation table
                Confirmation conf = ((ConfirmationRepository)this._rep)
                                    .GetByEntityId(music.ID.ToString());

                if (conf != null)
                {
                    this._rep.Delete(conf);

                    switch (confirmAction)
                    {
                    case ConfirmTypeAction.Ok:
                        // update source music by music
                        music.Status = MusicActiveStatus.Public;
                        if (_MusicSrv.Update(music, music.SourceMusicId.Value, WAVUpload, MP3Upload).Success)
                        {
                            // Delete temp music
                            _MusicSrv.DeleteBy(music.ID);
                        }
                        break;

                    case ConfirmTypeAction.Decline:
                        _MusicSrv.Update(music, music.ID, WAVUpload, MP3Upload);
                        _emailService.DeclineNewUpdateMusic(music.Artist.User.Email, DeclineReason, music.HebrewName);
                        break;

                    case ConfirmTypeAction.Block:
                        // Delete from temp
                        _MusicSrv.DeleteBy(music.ID);

                        // Set the source music as blocked
                        var SourceMusic = _MusicRep.GetByID(music.SourceMusicId.Value);
                        SourceMusic.Status = MusicActiveStatus.Blocked;
                        _MusicRep.Update(SourceMusic);
                        break;
                    }

                    this._uow.Commit();
                    res.Success = true;
                }
                else
                {
                    res.Message = "לא הצלחנו לאתר נתונים";
                    res.Success = false;
                }
            }
            catch (Exception e)
            {
                res.Message = e.Message;
                res.Success = false;
            }

            return(res);
        }
Ejemplo n.º 2
0
        public ResponseBase ConfirmNewMusic(Music music, Model.File WAVUpload,
                                            Model.File MP3Upload, ConfirmTypeAction confirmAction, string DeclineReason)
        {
            ResponseBase res = new ResponseBase();

            try
            {
                // delete from confirmation table
                Confirmation conf = ((ConfirmationRepository)this._rep)
                                    .GetByEntityId(music.ID.ToString());

                if (conf != null)
                {
                    this._rep.Delete(conf);

                    switch (confirmAction)
                    {
                    case ConfirmTypeAction.Ok:
                        music.Status = MusicActiveStatus.Public;

                        // update async artist report by updating his pdf file
                        _pdfService.ArtistAddMusicAsync(DateTime.Now, music.HebrewName,
                                                        music.MusicComposer, music.MusicPerformer, music.Exceptions, music.MusicWriter,
                                                        music.ArtistID, WebConf.FSBaseRoute);
                        break;

                    case ConfirmTypeAction.Decline:
                        _emailService.DeclineNewUpdateMusic(music.Artist.User.Email, DeclineReason, music.HebrewName);
                        break;

                    case ConfirmTypeAction.Block:
                        music.Status = MusicActiveStatus.Blocked;
                        break;
                    }

                    var resUpDateOK = _MusicSrv.Update(music, music.ID, WAVUpload, MP3Upload);
                    this._uow.Commit();
                    res.Success = true;
                }
                else
                {
                    res.Message = "לא הצלחנו לאתר נתונים";
                    res.Success = false;
                }
            }
            catch (Exception e)
            {
                res.Message = e.Message;
                res.Success = false;
            }

            return(res);
        }
Ejemplo n.º 3
0
        public async Task <bool> ConfirmEditedArtist(PaskolUser User, ConfirmTypeAction Action, string DeclineReason)
        {
            bool ActionSuccess = false;

            switch (Action)
            {
            case ConfirmTypeAction.Ok:
                User.Status = UserStatus.Active;
                if (!string.IsNullOrEmpty(User.Artist.TempArtist.Email))
                {
                    User.Email = User.Artist.TempArtist.Email;
                }

                if (!string.IsNullOrEmpty(User.Artist.TempArtist.UserName))
                {
                    User.UserName = User.Artist.TempArtist.UserName;
                }

                break;

            case ConfirmTypeAction.Decline:
                User.Status = UserStatus.WaitingNewArtist;
                MAILService.DeclineNewUpdateArtist(User.Email, DeclineReason);
                break;

            case ConfirmTypeAction.Block:
                // should delete from temp???
                User.Status = UserStatus.Blocked;
                break;
            }

            if (await UpdateUserAsync(User, null))
            {
                var res = service.Delete(User.Id);
                if (res.Success)
                {
                    ActionSuccess = true;
                }

                ModelState.AddModelError("", res.Message);
            }

            return(ActionSuccess);
        }
Ejemplo n.º 4
0
        public ActionResult PhonePurchase(Purchase Purchase, ConfirmTypeAction confirmAction)
        {
            if (ModelState.IsValid)
            {
                var res = service.ConfirmPhonePurchase(Purchase, confirmAction);

                if (res.Success)
                {
                    return(RedirectToAction("Index"));
                }

                ModelState.AddModelError("", res.Message);
                // Save model state in order to represent it under Redirection
                TempData["ViewData"] = ViewData;

                return(RedirectToAction("PhonePurchase", new { Id = Purchase.PurchaseId }));
            }

            return(View());
        }
Ejemplo n.º 5
0
        public ActionResult NewMusic(MusicViewModelEntry music, HttpPostedFileBase WAVUpload,
                                     HttpPostedFileBase MP3Upload, ConfirmTypeAction confirmAction, string DeclineReason)
        {
            if (ModelState.IsValid)
            {
                MusicHelper mh            = new MusicHelper();
                var         FilesFromHttp = mh.SetMusicBeforeUpDate(music, WAVUpload, MP3Upload);

                var res = service.ConfirmNewMusic(music, FilesFromHttp.wavFile, FilesFromHttp.mp3File,
                                                  confirmAction, DeclineReason);

                if (res.Success)
                {
                    return(RedirectToAction("Index"));
                }

                ModelState.AddModelError("", res.Message);
            }

            return(View(music));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> NewArtist(ArtistEditView EditedArtist, ConfirmTypeAction confirmAction,
                                                   string DeclineReason, HttpPostedFileBase upload)
        {
            if (ModelState.IsValid)
            {
                PaskolUser user = await UserManager.FindByIdAsync(EditedArtist.UserID);

                if (user != null)
                {
                    // Update user detials
                    EditedArtist.UserFromArtistEditView(user);
                    // Save photo if have
                    var PhotoRes = FSservice.StorePhoto(upload, user);

                    if (PhotoRes.Success)
                    {
                        user.Artist.PhotoID = PhotoRes.PhotoId;

                        // If succeded
                        if (await ConfirmNewArtist(user, confirmAction, EditedArtist.Password, DeclineReason))
                        {
                            return(RedirectToAction("Index"));
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("PictureId", PhotoRes.Message);
                    }
                }
                else
                {
                    ModelState.AddModelError("", "User Not Found");
                }
            }
            return(View());
        }
Ejemplo n.º 7
0
        public async Task <bool> ConfirmNewArtist(PaskolUser User, ConfirmTypeAction Action, string Password
                                                  , string DeclineReason)
        {
            bool ActionSuccess = false;

            switch (Action)
            {
            case ConfirmTypeAction.Ok:
                User.Status = UserStatus.Active;
                break;

            case ConfirmTypeAction.Decline:
                User.Status = UserStatus.WaitingNewArtist;
                MAILService.DeclineNewUpdateArtist(User.Email, DeclineReason);
                break;

            case ConfirmTypeAction.Block:
                User.Status = UserStatus.Blocked;
                break;
            }

            if (await UpdateUserAsync(User, Password))
            {
                var res = service.Delete(User.Id);
                if (res.Success)
                {
                    ActionSuccess = true;
                }
                else
                {
                    ModelState.AddModelError("", res.Message);
                }
            }

            return(ActionSuccess);
        }
Ejemplo n.º 8
0
 public ConfirmArtistRequest(ref PaskolUser user, ConfirmTypeAction action)
 {
     this.User   = user;
     this.Action = action;
 }
Ejemplo n.º 9
0
        public ResponseBase ConfirmPhonePurchase(Purchase ConfPurchase, ConfirmTypeAction confirmAction)
        {
            ResponseBase res = new ResponseBase();

            try
            {
                var purchase = this._purchasseRep.GetByID(ConfPurchase.PurchaseId);

                if (purchase != null)
                {
                    // delete from confirmation table
                    Confirmation conf = ((ConfirmationRepository)this._rep)
                                        .GetByEntityId(ConfPurchase.PurchaseId.ToString());

                    if (conf != null)
                    {
                        switch (confirmAction)
                        {
                        case ConfirmTypeAction.Ok:
                            var file = new Model.File()
                            {
                                FileType = FileType.PDF,
                                suffix   = ".pdf",
                                UserId   = ConfPurchase.Customer.Id,
                            };
                            // save that paid by customer but not paid to artist
                            purchase.PurchaseStatus    = PurchaseStatus.NotPaidToArtist;
                            purchase.Note              = " שולם.. " + ConfPurchase.Note;
                            purchase.PurchaseCost      = ConfPurchase.PurchaseCost;
                            purchase.CustomerReference = ConfPurchase.CustomerReference;
                            purchase.PurchaseAgreement = file;
                            this._purchasseRep.Update(purchase);
                            this._rep.Delete(conf);
                            this._uow.Commit();

                            string pathToDownload = string.Format(CommonHelper.GetBaseUrl() +
                                                                  "/File/GetFile?FileId={0}&UserId={1}&FileType={2}&version={3}&suffix={4}&FileName={5}"
                                                                  , purchase.Music.WAVFileID, purchase.Music.ArtistID, FileType.Music,
                                                                  purchase.Music.WAVFile.version, purchase.Music.WAVFile.suffix, purchase.Music.HebrewName);

                            string permissions =
                                string.Join(", ", purchase.Permision.PropertyValues
                                            .Where(pv => !pv.PermissionProperty.IsCostLevel)
                                            .Select(pv => pv.PermissionProperty.Name + " - " + pv.Name));

                            // Create Report
                            _pdfService.PurchaseAgreement(
                                WebConf.FSBaseRoute,
                                Path.GetFileName(file.RelativePath),
                                purchase.Customer.Id,
                                DateTime.Now,
                                purchase.Customer.UserName,
                                purchase.Customer.Email,
                                purchase.Music.HebrewName,
                                purchase.Music.MusicWriter,
                                purchase.Music.MusicComposer,
                                purchase.Music.MusicPerformer,
                                permissions,
                                purchase.PurchaseCost.HasValue ? purchase.PurchaseCost.Value : 0,
                                purchase.CustomerReference,
                                purchase.Music.Exceptions);

                            // Send email
                            _emailService.AlertArtistPurchaseSuccess(purchase.Music.Artist.User.Email);
                            _emailService.AlertBuyerPurchaseSuccess(purchase.Customer.Email, pathToDownload);

                            break;

                        case ConfirmTypeAction.Decline:
                            purchase.Note = " בוטל " + ConfPurchase.Note;
                            this._purchasseRep.Update(purchase);
                            this._uow.Commit();
                            break;
                        }
                        res.Success = true;
                    }
                }
                else
                {
                    res.Message = "הרכישה המבוקשת לעדכון לא נמצאה";
                    res.Success = false;
                }
            }
            catch (Exception e)
            {
                res.Message = e.Message;
                res.Success = false;
            }

            return(res);
        }